2009-06-11 5 views

Répondre

54

Vous pouvez essayer:

$("html").html(); 

Si vous voulez capturer aussi les balises HMTL vous pouvez les concaténer au html comme ceci:

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

Merci! Cela a fonctionné parfaitement !! –

+0

que diriez-vous d'obtenir le doctype? –

+0

@Sebastian Je ne sais pas si vous pouvez, voir [cette réponse] (http://stackoverflow.com/questions/3043820/jquery-check-doctype) –

2

$("html").html() obtiendrait tout, mais la partie extérieure la plus html Mots clés.

4

Utilisation:

document.body.innerHTML 
+2

Si vous voulez le document HTML complet, vous devez utiliser: 'window.document.innerHTML' – simo

+2

@simo:' document' n'a pas de propriété 'innerHTML' dans tous les navigateurs que j'utilise encore. – cHao

60

Ne pas oublier la balise <html> peut avoir des attributs aussi. Si vous voulez que tout le document fonctionne, cela devrait fonctionner.

$('html')[0].outerHTML 

C'est également trivial sans jQuery.

document.documentElement.outerHTML 

Si vous voulez aussi include the doctype, il est un peu plus impliqué.

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 
Questions connexes