web-dev-qa-db-fra.com

Comment obtenir la balise <html> HTML avec JavaScript / jQuery?

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)?

131
Justin Stayton

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
253
Michael

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);
35
posit labs

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 .

17
doubleswirve

Dans jQuery:

var html_string = $('html').outerHTML()

En clair Javascript:

var html_string = document.documentElement.outerHTML
15
fcalderan

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

http://api.jquery.com/attr/

Aditionellement:

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

4
jordanstephens