309 votes

Comment obtenir l'intégralité du document HTML sous forme de chaîne ?

Existe-t-il un moyen en JS d'obtenir l'intégralité du code HTML dans le fichier html sous forme de chaîne de caractères ?

document.documentElement.??

25 votes

La seule réponse correcte : stackoverflow.com/questions/817218/ ( arrêtez de voter pour les réponses inner/outerHTML, elles ne fournissent PAS la source entière ! )

4 votes

document.body.parentElement.innerHTML

0 votes

@John qu'est-ce qu'ils ne fournissent pas ?

392voto

Colin Burnett Points 4572

MS a ajouté le outerHTML y innerHTML propriétés il y a quelque temps.

Según MDN , outerHTML est pris en charge dans Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile et Safari Mobile. outerHTML est dans le Analyse syntaxique et sérialisation du DOM spécification.

Voir quirksmode pour la compatibilité des navigateurs pour savoir ce qui fonctionne pour vous. Tous les supports innerHTML .

var markup = document.documentElement.innerHTML;
alert(markup);

41 votes

OuterHTML ne reçoit pas le doctype.

2 votes

Ça a marché comme sur des roulettes ! merci ! y a-t-il un moyen d'obtenir la taille de tous les fichiers liés au document, y compris les fichiers js et css ?

0 votes

@CMCDragonkai : Vous pourriez obtenir le doctype séparément et l'ajouter en préambule à la chaîne de balisage. Pas idéal, je sais, mais possible.

50voto

Noldorin Points 67794

Je crois document.documentElement.outerHTML devrait le renvoyer pour vous.

Según MDN , outerHTML est pris en charge dans Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile et Safari Mobile. outerHTML est dans le Analyse syntaxique et sérialisation du DOM spécification.

La page MSDN sur le outerHTML propriété note qu'il est pris en charge dans IE 5+. La réponse de Colin renvoie à la page quirksmode du W3C, qui offre une bonne comparaison de la compatibilité entre navigateurs (pour d'autres fonctionnalités DOM également).

0 votes

Tous les navigateurs ne le permettent pas.

0 votes

@Colin : Oui, bon point. Par expérience, je crois me souvenir que IE 6+ et Firefox le supportent tous les deux, bien que la page quirksmode que vous avez liée suggère le contraire...

0 votes

Firefox ne prend pas en charge OuterHTML. C'est une propriété d'IE. developer.mozilla.org/Fr/

10voto

Hakan Points 987

Vous pouvez aussi le faire :

document.getElementsByTagName('html')[0].innerHTML

Vous n'obtiendrez pas le Doctype ou la balise html, mais tout le reste...

7voto

Brian Campbell Points 101107
document.documentElement.outerHTML

1 votes

Tous les navigateurs ne prennent pas en charge cette fonction.

2 votes

Pris en charge dans Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile et Safari Mobile ( MDN ). outerHTML est dans le Analyse syntaxique et sérialisation du DOM spécification.

0 votes

La réponse de Colin est plus détaillée.

3voto

cherouvim Points 18550
document.documentElement.innerHTML

0 votes

Cela ne renvoie pas le <html ...> étiquette.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X