我知道这个问题已经在这里讨论过了,但是还没有解决办法可以获取整个文档(包括doctype)。
$(document).html();
返回 null
...
我知道这个问题已经在这里讨论过了,但是还没有解决办法可以获取整个文档(包括doctype)。
$(document).html();
返回 null
...
这将帮助您获取所有的 HTML 代码:
document.documentElement.outerHTML
不幸的是,它不会返回文档类型。但是您可以使用document.doctype
来获取它并将两者粘合在一起。
document.doctype
的人,所以我接受了你的答案。感谢大家! - dtrunk您可以做
new XMLSerializer().serializeToString(document);
适用于所有版本高于IE 9的浏览器
这是一个在IE6+中支持的函数,它不使用outerHTML
以获得更多的支持,它添加了文档类型并使用了一些技巧来获取html
标签及其属性。为了接收带有文档类型的字符串,并且不使用outerHTML
,因此支持所有浏览器。它使用了一些技巧来获取html
标签。添加以下代码:
document.fullHTML = function () {
var r = document.documentElement.innerHTML, t = document.documentElement.attributes, i = 0, l = '',
d = '<!DOCTYPE ' + document.doctype.name + (document.doctype.publicId ? ' PUBLIC "' + document.doctype.publicId + '"' : '') + (!document.doctype.publicId && document.doctype.systemId ? ' SYSTEM' : '') + (document.doctype.systemId ? ' "' + document.doctype.systemId + '"' : '') + '>';
for (; i < t.length; i += 1) l += ' ' + t[i].name + '="' + t[i].value + '"';
return d+'\n<html' + l + '>' + r + '</html>';
}
console.log(document.fullHTML());
试一下这个。
$("html").html()
document是一个变量,它并不代表HTML标签。
编辑
要获取文档类型,可以使用以下方法:
document.doctype
$('html').html()
获取内容,使用document.doctype获取文档类型。我认为没有直接访问整个文档(包括文档类型)的方法,但是以下方法可行:
$.get(document.location, function(html) {
// use html (which is the complete source code, including the doctype)
});
document.doctype
是最接近的,但不是精确的)。 - Denys Séguretdocument.documentElement;
document.documentElement
返回一个 对象,而 document.documentElement.outerHTML
返回一个 字符串。 - Ritesh Khandekar