JS 中有没有办法将html标签中的整个 HTML作为字符串获取?
document.documentElement.??
JS 中有没有办法将html标签中的整个 HTML作为字符串获取?
document.documentElement.??
MS前段时间添加了outerHTML
和innerHTML
属性。
根据MDN,outerHTML
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 解析和序列化规范中。
有关浏览器兼容性的信息,请参阅quirksmode以了解对您有用的内容。都支持innerHTML
。
var markup = document.documentElement.innerHTML;
alert(markup);
你可以做
new XMLSerializer().serializeToString(document)
在比 IE 9 更新的浏览器中
我相信document.documentElement.outerHTML
应该为你回报。
根据MDN,outerHTML
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 功能)。
我尝试了各种答案以查看返回的内容。我正在使用最新版本的 Chrome。
建议document.documentElement.innerHTML;
返回<head> ... </body>
Gaby 的建议得到document.getElementsByTagName('html')[0].innerHTML;
了同样的回报。
document.documentElement.outerHTML;
返回的建议<html><head> ... </body></html>
是除“文档类型”之外的所有内容。
您可以使用document.doctype;
This 返回一个对象而不是字符串来检索 doctype 对象,因此如果您需要将详细信息提取为所有 doctypes 的字符串,包括 HTML5,请在此处进行描述:Get DocType of an HTML as string with Javascript
我只想要 HTML5,所以以下内容足以让我创建整个文档:
alert('<!DOCTYPE HTML>' + '\n' + document.documentElement.outerHTML);
你也可以这样做:
document.getElementsByTagName('html')[0].innerHTML
你不会得到 Doctype 或 html 标签,但其他一切......