如何使用jQuery获取整个页面的HTML?

时间:2009-06-11 18:09:37

标签: jquery html dom

我使用了$(document).html(),但这引发了错误......是否有办法获取所有内容?

5 个答案:

答案 0 :(得分:68)

不要忘记<html>标记也可以包含属性。如果您想要整个文档,这应该可行。

 $('html')[0].outerHTML

没有jQuery也很简单。

document.documentElement.outerHTML

如果你还想include the doctype,那就更多了。

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   

答案 1 :(得分:61)

你可以尝试:

$("html").html();

如果你想捕获html标签,可以将它们连接到html,如下所示:

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

答案 2 :(得分:4)

使用:

document.body.innerHTML

答案 3 :(得分:2)

$("html").html()除了最外层的html标签外,还能获得所有内容。

答案 4 :(得分:0)

无需依赖jQuery。最好和最简单的方法是使用

new XMLSerializer().serializeToString(document)

,它将始终为您提供整个页面的内容,包括 DOCTYPE标记,并且所有现代浏览器都支持它:https://caniuse.com/#feat=xml-serializer