文档对象模型定义了 JavaScript 可以进行操作的浏览器,描述了文档对象的逻辑结构及各功能部件的标准接口。
主要包括如下方面:
核心 JavaScript 语言参考(数据类型、运算符、基本语句、函数等)
与数据类型相关的核心对象(String、Array、Math、Date 等数据类型)
浏览器对象(window、location、history、navigator 等)
文档对象(document、images、form 等)
JavaScript 使用两种主要的对象模型:浏览器对象模型(BOM)和文档对象模型(DOM),前者提供了访问浏览器各个功能部件,如浏览器窗口本身、浏览历史等的操作方法;
后者则提供了访问浏览器窗口内容,如文档、图片等各种HTML 元素以及这些元素包含的文本的操作方法。
在早期的浏览器版本中,浏览器对象模型和文档对象模型之间没有很大的区别。
观察下面的简单HTML 代码:[code]
First Page!Test!
Welcome to DOM World!
- Newer
可以看出,html 为根元素对象,可代表整个文档,head 和body 两个分支,位于于同一层次,为兄弟关系,存在同一父元素对象,但又有各自的子元素对象。
在支持脚本的浏览器发展过程中,出现了如下6 种不同的文档对象模型,如表所示:
IE4 表示Internet Explorer 4,NN4 表示Netscape Navigator 4,Moz1 表示Mozilla1,其余类推。
DOM 不同版本的存在给客户端程序员带来了很多的挑战,编写当前浏览器中最新对象模型支持的JavaScript 脚本相对比较容易,但如果使用早期版本的浏览器访问这些网页,将会出现不支持某种属性或方法的情况。如果要使设计的网页能运行于绝大多数浏览器中,显而易见将是个难题。
因此,W3C DOM 对这些问题做了一些标准化工作,新的文档对象模型继承了许多原始的对象模型,同时还提供了文档对象引用的新方法。

