0

我想知道是否有办法将 doctype 转储为字符串。

例如,我有一个严重依赖 BackboneJS 的 Web 应用程序。初始页面源代码很简单(只需要脚本),但在加载 Backbone 后会生成整个内容。我正在寻找一种方法来获取特定状态的 DOM 源,以便将其发送到 W3C 验证器。我不想只是从 Firebug 的检查器中复制粘贴内容,因为我想自动化流程。

我已经发现我可以用document.getElementsByTagName('html')[0].outerHTML. 这不是标准的,但适用于许多浏览器(Chrome、Opera,也许还有其他)。这没关系,因为我正在为开发人员创建一个工具,而不是为页面最终用户用户创建一个解决方案。

但是,这样的转储缺少有关 doctype 的信息。并且需要 doctype 来指示 HTML 验证器。请问你能帮帮我吗?在此先感谢您对此主题的任何帮助。

4

2 回答 2

2

该对象具有公共标识符和系统标识符document.doctype的属性namehtml用于 HTML 文档) 。因此,您可以这样构造文本文档类型声明:publicIdsystemId

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';
于 2012-10-21T19:23:58.827 回答
1
document.doctype

希望有帮助。

于 2012-10-21T18:59:08.610 回答