我想知道是否有办法将doctype转储到字符串。
例如,我有一个很大程度上依赖于BackboneJS的Web应用程序。初始页面源代码很简单(只需要脚本)但加载后Backbone会生成整个内容。我正在寻找一种方法来获取特定状态的DOM源,以便将其发送到W3C验证器。我不想只是从Firebug的检查器中复制粘贴内容,因为我想自动化流程。
我已经发现我可以使用document.getElementsByTagName('html')[0].outerHTML
转储HTML元素。这不是标准,但适用于许多浏览器(Chrome,Opera,也许其他浏览器)。这是可以的,因为我正在为开发人员创建一个工具,而不是页面最终用户用户的解决方案。
但是,这样的转储缺少有关doctype的信息。并且需要doctype来指示HTML验证器。请问你能帮帮我吗?提前感谢您对此主题的任何帮助。
答案 0 :(得分:2)
document.doctype
对象具有属性name
(HTML文档为html
),公共标识符为publicId
,系统为systemId
标识符。因此,您可以通过以下方式构造文本doctype声明:
var doctype = '<' + '!DOCTYPE ' + document.doctype.name;
if(document.doctype.publicId) doctype +=
' PUBLIC "' + document.doctype.publicId + '"';
if(document.doctype.systemId) doctype +=
' "' + document.doctype.systemId + '"';
doctype += '>\n';
答案 1 :(得分:1)
document.doctype
希望有所帮助。