DocumentType类型在WEB浏览器中并不常用,Firefox、Safari、Opera和Chrome浏览器支持DocumentType类型,而IE浏览器不支持DocumentType类型。DocumentType包含着与文档doctype有关的信息,它有下面的一些特征:
-
nodeType的值为10。
-
nodeName的值为doctype的名称。
-
nodeValue的值null。
-
parentNode是Document。
-
它的没有子节点。
在DOM1级中,DocumentType对象不能动态创建,而是只能通过解析文档代码的方式来创建。支持它的浏览器会将DocumentType对象保存在document.doctype
中。
DOM1级描绘了DocumentType对象的3个属性:name
、entities
和notations
。其中,name
属性表示文档类型的名称;entities
属性是由文档类型描述的实体的NamedNodeMap
对象;notations
属性是由文档类型描述的符号的NamedNodeMap
对象
通常浏览器中的文档使用的都是HTML或XHTML文档类型,所以entities
和notations
都是空列表(列表中的项来自行内文档类型声明)。name
属性中保存了文档类型的名称,也就是出现在<!DOCTYPE
之后的文本内容。
下面的例子是一个严格型的HTML4.01的文档类型声明的例子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
DocumentType的name
属性中保存的就是"HTML",可以通过控制台来查看:
console.info(document.doctype.name);
IE不支持DocumentType,因此document.doctype
的值始终会是null
。但是,IE浏览器会错误的将文档类型解释为注释,并且为它创建一个注释节点。