Html 如何转储DOCTYPE元素?

Html 如何转储DOCTYPE元素?,html,doctype,Html,Doctype,我想知道是否有办法将doctype转储到string 例如,我有一个严重依赖BackboneJS的web应用程序。初始页面源代码很简单(只需要脚本),但在加载主干后会生成整个内容。我正在寻找一种方法来获取特定状态下的DOM源,以便将其发送到W3C验证程序。我不想只是从Firebug的检查器复制粘贴内容,因为我想自动化这个过程 我已经发现可以使用document.getElementsByTagName('HTML')[0].outerHTML转储HTML元素。这不是标准的,但在许多浏览器(Chr

我想知道是否有办法将doctype转储到string

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

我已经发现可以使用
document.getElementsByTagName('HTML')[0].outerHTML
转储HTML元素。这不是标准的,但在许多浏览器(Chrome、Opera,可能还有其他浏览器)中都可以使用。这没关系,因为我是在为开发人员创建工具,而不是为页面最终用户创建解决方案

但是,这样的转储缺少关于doctype的信息。需要doctype来指示HTML验证程序。你能帮帮我吗?提前感谢您在本主题中提供的任何帮助

document.doctype
希望有帮助


希望对您有所帮助。

文档.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';
var doctype='\n';

文档.doctype对象具有属性
名称
(对于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';
var doctype='\n';
如果你需要写“希望有帮助”。为了发布你的答案,也许你最好写一个适当的解释。如果你需要写“希望有帮助”。为了发布你的答案,也许你最好写一个适当的解释。