在JS中是否有一种方法可以在HTML标签中获取整个HTML,作为字符串?

document.documentElement.??

当前回答

你可以这样做

new XMLSerializer().serializeToString(document)

在比ie9更新的浏览器中

看到https://caniuse.com/壮举= xml序列化

其他回答

正确的做法其实是:

webBrowser1。DocumentText

我尝试了各种答案,看看返回了什么。我用的是最新版本的Chrome浏览器。

建议:document.documentElement.innerHTML;返回<head>…身体< / >

Gaby的建议document.getElementsByTagName('html')[0].innerHTML;返回相同。

建议:document.documentElement.outerHTML;返回<html><head>…< /身体> < / html > 这是除了'doctype'以外的所有东西。

您可以使用document.doctype;这将返回一个对象,而不是一个字符串,所以如果你需要为所有文档类型提取字符串的细节,包括HTML5,它在这里描述

我只需要HTML5,所以以下内容足以让我创建整个文档:

alert (' < !DOCTYPE HTML>' + '\n' + document.documentElement.outerHTML);

我相信document.documentElement.outerHTML应该为您返回该值。

MDN表示,目前支持的浏览器包括Firefox 11、Chrome 0.2、Internet Explorer 4.0、Opera 7、Safari 1.3、Android、Firefox Mobile 11、IE Mobile、Opera Mobile、Safari Mobile等。outerHTML在DOM解析和序列化规范中。

outerHTML属性上的MSDN页面指出IE 5+支持它。Colin的回答链接到W3C quirksmode页面,该页面很好地比较了跨浏览器兼容性(也有其他DOM特性)。

你还可以:

document.getElementsByTagName('html')[0].innerHTML

你不会得到Doctype或html标签,但其他的一切…

你可以这样做

new XMLSerializer().serializeToString(document)

在比ie9更新的浏览器中

看到https://caniuse.com/壮举= xml序列化