58 votes

Comment puis-je obtenir le code HTML de la page entière avec jQuery?

J'ai utilisé $(document).html() , mais cela a provoqué une erreur ... existe-t-il un moyen d'obtenir tout?

71voto

Patrick McElhaney Points 22093

N'oubliez pas que la balise <html> peut également avoir des attributs. Si vous voulez tout le document, cela devrait fonctionner.

  $('html')[0].outerHTML
 

C'est aussi trivial sans jQuery.

 document.documentElement.outerHTML
 

Si vous souhaitez également inclure le doctype , c'est un peu plus compliqué.

 var getDocTypeAsString = function () { 
    var node = document.doctype;
    return node ? "<!DOCTYPE "
         + node.name
         + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '')
         + (!node.publicId && node.systemId ? ' SYSTEM' : '') 
         + (node.systemId ? ' "' + node.systemId + '"' : '')
         + '>\n' : '';
};

getDocTypeAsString() + document.documentElement.outerHTML   
 

71voto

Jimmie R. Houts Points 3761

Tu pourrais essayer:

 $("html").html();
 

Si vous souhaitez également capturer les balises hmtl, vous pouvez les concaténer en html comme ceci:

 function getPageHTML() {
  return "<html>" + $("html").html() + "</html>";
}
 

4voto

Diodeus Points 67946

Utilisation:

 document.body.innerHTML
 

2voto

Max Schmeling Points 6295

$("html").html() obtiendrait tout sauf les balises externes les plus html.

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