J'ai utilisé $(document).html()
, mais cela a généré une erreur ... existe-t-il un moyen d'obtenir tout?
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>";
}
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
Utilisation:
document.body.innerHTML
$("html").html()
obtiendrait tout sauf les balises externes les plus html.