En utilisant $('html').html()
je peux obtenir le code HTML dans le <html>
tag (<head>
, <body>
, etc.). Mais comment puis-je obtenir le code HTML réel du <html>
tag (avec attributs)?
Sinon, est-il possible d’obtenir l’ensemble du code HTML de la page (y compris doctype, <html>
, etc.) avec jQuery (ou javascript vieux)?
Le moyen le plus simple d'obtenir l'élément html
en mode natif est le suivant:
document.documentElement
Voici la référence: https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement .
UPDATE: Pour saisir ensuite l'élément html
en tant que chaîne, procédez comme suit:
document.documentElement.outerHTML
Voici comment obtenir l'élément DOM html uniquement avec JS:
var htmlElement = document.getElementsByTagName("html")[0];
ou
var htmlElement = document.querySelector("html");
Et si vous voulez utiliser jQuery pour en obtenir les attributs ...
$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);
Outre certaines des autres réponses, vous pouvez également accéder à l'élément HTML via:
var htmlEl = document.body.parentNode;
Ensuite, vous pouvez obtenir le contenu HTML interne:
var inner = htmlEl.innerHTML;
Cela semble être légèrement plus rapide . Si vous venez d’obtenir l’élément HTML, cependant, document.body.parentNode
semble être n peu plus rapide .
Une fois que vous avez l'élément HTML, vous pouvez manipuler les attributs avec les méthodes getAttribute
et setAttribute
.
Pour le DOCTYPE, vous pouvez utiliser document.doctype
, qui a été développé dans cette question .
Dans jQuery:
var html_string = $('html').outerHTML()
En clair Javascript:
var html_string = document.documentElement.outerHTML
si vous voulez obtenir un attribut d'un élément HTML avec jQuery, vous pouvez utiliser .attr();
alors $('html').attr('someAttribute');
vous donnera la valeur de someAttribute
de l'élément html
il existe un plugin jQuery ici: http://plugins.jquery.com/project/getAttributes
qui vous permet d'obtenir tous les attributs d'un élément HTML