本文深入解析JavaScript中的BOM(浏览器对象模型),介绍其核心对象window及location、history等常用API。重点对比BOM与DOM的区别:BOM侧重于浏览器窗口交互,缺乏统一标准;DOM则是处理HTML/XML文档的树状API,具有语言无关性。通过结构图与代码示例,帮助开发者清晰区分两者概念与应用场景。
BOM概念与核心对象
什么是BOM
BOM全称为Browser Object Model,即浏览器对象模型。它提供了一套独立于网页内容、专门用于与浏览器窗口进行交互的对象接口。由于BOM的主要职责是管理窗口与窗口之间的通信,因此其核心对象为window。BOM由一系列相关的对象构成,每个对象都提供了丰富的方法与属性供开发者调用。需要注意的是,BOM缺乏统一的标准规范,JavaScript的标准化由ECMA组织负责,而DOM的标准化则由W3C组织制定。BOM最初是Netscape浏览器标准的一部分。
在BOM章节中你将学到什么
在BOM教程中,你将学习如何与浏览器窗口交互的相关对象。这包括可以控制浏览器窗口移动和大小调整的window对象,用于页面导航的location对象与history对象,以及用于获取浏览器类型、操作系统和用户屏幕信息的navigator与screen对象。此外,还可以使用document作为访问HTML文档的入口,以及管理框架的frames对象等。
BOM结构图

window对象是BOM的顶层(核心)对象,所有其他BOM对象均通过它延伸而来,因此也可称为window的子对象。
由于window是顶层对象,因此在调用其子对象时,可以省略显式指明window对象。例如,以下两行代码的效果是相同的:
示例
document.write("www.dreamdu.com");
window.document.write(www.dreamdu.com);
BOM与DOM的区别
javascript中的BOM和DOM什么区别?
这是浏览器运行时环境中两个不同的概念。
BOM 浏览器对象模型
BOM提供了独立于网页内容、专门用于与浏览器窗口进行交互的对象。它描述了与浏览器进行交互的方法和接口,允许对浏览器窗口进行访问和操作。例如,可以弹出新窗口、改变状态栏文本、支持Cookie操作等。此外,IE浏览器还扩展了BOM,加入了ActiveXObject类,允许通过JavaScript脚本实例化ActiveX对象等。
DOM 文档对象模型
DOM是针对XML的基于树的API。它描述了处理网页内容的方法和接口,是HTML和XML的API。DOM将整个页面规划为由节点层级构成的文档结构。
DOM本身是与语言无关的API,它并不与Java、JavaScript或其他特定语言绑定。
特定语言的DOM
针对XHTML和HTML的DOM。该DOM定义了一个HTMLDocument和HTMLElement,作为这种实现的基础。