在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.getElementsByTagName('html')[0].innerHTML

可能不是正确的方式,但当我看到它时,我能理解它。

如果你想获取DOCTYPE之外的所有内容,这将有效:

document.getElementsByTagName('html')[0].outerHTML;

如果你想要doctype也可以这样:

new XMLSerializer().serializeToString(document.doctype) + document.getElementsByTagName('html')[0].outerHTML;

使用document.documentElement。

这里回答了同样的问题: https://stackoverflow.com/a/7289396/2164160

可能只有ie:

>     webBrowser1.DocumentText

FF从1.0上升:

//serialize current DOM-Tree incl. changes/edits to ss-variable
var ns = new XMLSerializer();
var ss= ns.serializeToString(document);
alert(ss.substr(0,300));

可能在FF工作。(显示源文本最开始的前300个字符,主要是doctype-defs。)

但是请注意,正常的FF的“另存为”对话框可能不会保存页面的当前状态,而是最初加载的X/h/tml-source-text !! (POST-up ss到某个临时文件并重定向到该文件可能会提供一个可保存的源文本,其中包含之前对其进行的更改/编辑。)

虽然FF惊喜于“back”上的良好恢复和“Save (as)…”上的状态/值的NICE包含,如输入字段,textarea等,而不是contentteditable / designMode中的元素…

如果不是xhtml- respp。xml-file (mime-type,不仅仅是filename-extension!),你可以使用document。打开/写入/关闭设置appr。内容到源层,将保存在用户的保存对话框从文件/保存菜单的FF。 看到的: http://www.w3.org/MarkUp/2004/xhtml-faq docwrite职责。

https://developer.mozilla.org/en-US/docs/Web/API/document.write

对于X(ht)ML的问题中立,尝试“view-source:http://...”作为iframe (script-made!?)的src-attrib的值,-来访问FF中的iframe -文档:

< iframe-elementnode >。appr,请参见谷歌"mdn contentDocument"。成员,例如'textContent'。 “几年前就有了,不喜欢爬着拿。如果还有紧急需要,就提这个,我要潜入…

我尝试了各种答案,看看返回了什么。我用的是最新版本的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);