【发布时间】:2010-11-02 05:37:45
【问题描述】:
我使用了$(document).html(),但是这引发了错误...有没有办法得到所有东西?
【问题讨论】:
我使用了$(document).html(),但是这引发了错误...有没有办法得到所有东西?
【问题讨论】:
编辑:使用XMLSerializer()
别忘了<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
【讨论】:
你可以试试:
$("html").html();
如果您还想捕获 html 标签,您可以像这样将它们连接到 html:
function getPageHTML() {
return "<html>" + $("html").html() + "</html>";
}
【讨论】:
用途:
document.body.innerHTML
【讨论】:
window.document.innerHTML
document 在我仍在使用的任何浏览器中都没有 innerHTML 属性。
$("html").html() 将获取除最外层 html 标记之外的所有内容。
【讨论】:
无需依赖 jQuery。最好和最简单的方法是使用
new XMLSerializer().serializeToString(document)
它将始终为您提供整个页面的内容包括 DOCTYPE标签,并且在所有现代浏览器中都支持:https://caniuse.com/#feat=xml-serializer
【讨论】: