在JS中是否有一种方法可以在HTML标签中获取整个HTML,作为字符串?
document.documentElement.??
在JS中是否有一种方法可以在HTML标签中获取整个HTML,作为字符串?
document.documentElement.??
当前回答
我尝试了各种答案,看看返回了什么。我用的是最新版本的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.innerHTML
您必须遍历文档childNodes并获得outerHTML内容。
在VBA中是这样的
For Each e In document.ChildNodes
Put ff, , e.outerHTML & vbCrLf
Next e
使用这个,允许你获得网页的所有元素,包括< !DOCTYPE >节点(如果它存在的话)
我尝试了各种答案,看看返回了什么。我用的是最新版本的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);
如果你想获取DOCTYPE之外的所有内容,这将有效:
document.getElementsByTagName('html')[0].outerHTML;
如果你想要doctype也可以这样:
new XMLSerializer().serializeToString(document.doctype) + document.getElementsByTagName('html')[0].outerHTML;
document.documentElement.outerHTML