文档对象模型(DOM,Document Objeect Model)是一个应用编程接口(API),用于在HTML 中使用扩展的XML。DOM将整个页面抽象为一组分层节点。HTML或XML页面的每个组成部分都是一种节点,包含不同的数据。
DOM通过创建表示文档的树,让开发者可以随性所欲地控制网页的内容和结构。使用DOMAPI,可以轻松地删除、添加、替换、修改节点。
为了保持We跨平台的本性,万维网联盟(W3c,Worled Wide Web Consortium)制定DOM标准的进程。DOMLevel1成为W3C的推荐标准。这个规范由两个模块组成:DOMCore和DOM HTML。前者提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式:后者扩展了前者并增加了特定于HTML的对象和方法。
IE3和Netscape Navigator 3提供了浏览器对象模型(BOM) API,用于支持访问和操作浏览器的敞口。使用BOM,开发者可以操控浏览器显示页面之外的部分。而BOM独一无二的的地方当然也是问题最多的地方,就是它是唯一一个没有相关标准的JavaScript实现。HTML5的出现,之前很多与BOM有关的问题都迎刃而解了。
BOM主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特定于浏览器的扩展都归在BOM的范畴内。
比如:
弹出新浏览器窗口的能力;
移动、缩放和关闭浏览器窗口能力;
nabigator对象,提供关于浏览器的详尽信息;
Iocation对象,提供浏览器加载页面的详尽信息;
screen对象,提供关于用户屏幕分辨率的详尽信息;
peerfprmance对象,提供浏览器内存占用、当行行为和时间统计的详尽信息;
对cookie的支持;
其他自定义对象,如XMLHttpRequest和IE的ActivexobJect。