我使用了$(document).html()
,但这引发了错误......是否有办法获取所有内容?
答案 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