DOM1主要定义的是HTML和XML文档的底层结构,DOM2 & DOM3则在这个结构的基础上引入了更多的交互能力。
为此,DOM2、DOM3分为好多个模块,分别描述了DOM某个非常具体的子集:
1、DOM2级核心:在DOM1级核心的基础上构建,为节点添加了更多的方法和属性。
2、DOM2级视图:为文档定义了基于样式信息的不同视图。
3、DOM2级事件:说明了如何使用事件与DOM文档交互。
4、DOM2级样式:定义了如何使用编程方式,来访问和改变css样式信息。
5、DOM2级遍历和范围:引入了遍历DOM文档和选择其特定部分的新接口。
6、DOM2级HTML:在1级HTML基础上构建,添加了更多属性、方法和新接口。
1、DOM变化
DOM2和3的目的在于扩展DOM的API,以满足操作XML的所有需求,提供更好的错误处理和特性检测能力。
可以通过下列代码来确定浏览器是否支持这些DOM模块:
var supportsDOM2Core = document.implementation.hasFeature("Core", "2.0");
var supportsDOM3Core = document.implementation.hasFeature("Core", "3.0");
var supportsDOM2HTML = document.implementation.hasFeature("HTML", "2.0");
var supportsDOM2Views = document.implementation.hasFeature("Views", "2.0");
var supportsDOM2XML = document.implementation.hasFeature("XML", "2.0");
1、针对XML命名空间的变化
有了XML命名空间,不同XML文档的元素就可以混在一起,共同构成格式良好的文档,而不必担心发生命名冲突。
从技术上说,HTML不支持XML命名空间,但是XHTML支持XML命名空间。
命名空间使用特性xmlns来指定,XHTML的命名空间是http://www.w3.org/1999/xhtml,在任何格式良好的XHTML页面中,都应该包含在html元素中,如下面的例子所示:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Example XHTML page</title>
</head>
<body>
Hello world!
</body>
</html>
就这个例子而言,其中的所有元素都默认为XHTML命名空间中的元素。
<待续>