web-dev-qa-db-fra.com

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

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

54
Justin Lee

Tu pourrais essayer:

$("html").html();

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

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

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 voulez aussi 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   
69
Patrick McElhaney

Utilisation:

document.body.innerHTML

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

2
Max Schmeling