如何获取整个文档的HTML作为一个string?
有没有一种方法在JS获取html标签内的整个HTML,作为一个string?
document.documentElement.??
MS前段时间添加了outerHTML
和innerHTML
属性。
根据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
。 outerHTML
在DOM分析和序列化规范中。
请参阅quirksmode以了解适用于您的浏览器的兼容性。 全部支持innerHTML
。
var markup = document.documentElement.innerHTML; alert(markup);
我相信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
。 outerHTML
在DOM分析和序列化规范中。
outerHTML
属性上的MSDN页面指出它在IE 5+中受支持。 Colin的答案链接到W3C quirksmode页面,该页面提供了跨浏览器兼容性的好的比较(对于其他的DOMfunction)。
我尝试了各种答案,看看返回的是什么。 我正在使用最新版本的Chrome。
build议document.documentElement.innerHTML;
返回<head> ... </body>
Gaby的build议document.getElementsByTagName('html')[0].innerHTML;
还是一样的。
build议document.documentElement.outerHTML;
返回<html><head> ... </body></html>
这是除了“文档types”的一切。
您可以使用document.doctype;
检索doctype对象document.doctype;
这将返回一个对象,而不是一个string,所以如果你需要提取的细节作为string的所有文档types,直到包括HTML5它在这里描述: 获取HTML的JavaScripttypes的string
我只想要HTML5,所以下面的内容足以让我创build整个文档:
alert('<!DOCTYPE HTML>' + '\n' + document.documentElement.outerHTML);
你可以做
new XMLSerializer().serializeToString(document)
在比IE 9更新的浏览器中。
你也可以这样做:
document.getElementsByTagName('html')[0].innerHTML
你不会得到Doctype或HTML标签,但其他的一切…
document.documentElement.outerHTML
可能只有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工作。 (从源文本的非常开始,主要是doctype-defs,显示了最初的300个字符。)
但请注意,FF MIGHT的正常“另存为”-Dialog不能保存页面的当前状态,而不是原始加载的X / h / tml-source-text! (将某个临时文件复制到某个临时文件,然后redirect到可能会提供一个可保存的源文本,同时对其进行更改/编辑。)
尽pipeFF在“后退”方面出现了良好的恢复,而NICE在input类似FIELDS,textarea等方面包含了“Save(as)…”的状态/值,而不是contenteditable / designMode中的元素。
如果不是一个xhtml-响应。 XML文件(MIMEtypes,不只是文件扩展!),可以使用document.open / write / close来设置appr。 内容添加到源层,这将从FF的File / Save菜单保存在用户的保存对话框中。 请参阅: http : //www.w3.org/MarkUp/2004/xhtml-faq#docwrite resp。
https://developer.mozilla.org/en-US/docs/Web/API/document.write
对X(ht)ML的问题是中立的,尝试一个“view-source:http:// …”作为(script-made !?)iframe的src-attrib的值, – 访问一个iframes- FF中的文件:
<iframe-elementnode>.contentDocument
,请参阅google“mdn contentDocument”for appr。 成员,比如“textContent”。 “那是几年前才知道的,也不想爬。 如果还有急需的话,请提一下,我要潜入…
document.documentElement.innerHTML
我总是使用
document.getElementsByTagName('html')[0].innerHTML
可能不是正确的方法,但是当我看到它的时候我可以理解它。
使用document.documentElement
。
同样的问题在这里回答: https : //stackoverflow.com/a/7289396/2164160
正确的方法实际上是:
webBrowser1.DocumentText