BOM 是 Browser Object Model 的缩写,即浏览器对象模型,它提供了独立于网页内容而与浏览器窗口进行交互的 API ,这些 API 由若干对象组成。这些对象也被称为宿主对象,它们可以用来管理浏览历史和地址、获取浏览器信息,并具有其它的一些实用功能。
过去,有关 BOM 的操作没有一个国际标准,各浏览器厂商自行定义宿主对象的功能,这造成了浏览器之间的兼容性难题,也给开发者带来很大的难题。现今,随着 HTML5规范的发布,其中规定了 BOM 的所有 API ,因此不会再存在无据可参考的尴尬局面。
BOM 是 Browser Object Model 的缩写,即浏览器对象模型,它提供了独立于网页内容而与浏览器窗口进行交互的 API ,这些 API 由若干对象组成,由于浏览器是 JavaScript 程序的宿主,因此,这些对象也被称为宿主对象。
宿主对象中最核心的就是 window 对象,该对象是浏览器最顶层的一个对象,之所以称 window 为对象而不是类,因为它其实是浏览器窗口这个类的一个实例。
window 对象可以产生其它对象,例如 history 、 location 、 document 等。因为 window 对象的顶层性,所以在使用其方法和属性时,一般无需指定对象名,例如下面的调用是完全等价的:
alert("欢迎你的访问!请按"确定"按钮继续!" );
window.alert("欢迎你的访问!请按"确定"按钮继续!" );
window 对象及其产生的对象都称为宿主对象,包括 window 、 navigator 、 history 、 location 、 document 、 screen 等,分别用来处理不同的操作。其中, window 代表所在的浏览器窗口,这是一个顶层的对象,其它对象都由该对象派生。
BOM (浏览器对象模型)对浏览器窗口进行访问和操作,与 DOM 不同, BOM 只是 JavaScript 的一部分 。
BOM (Browser Object Model, 浏览器对象模型 )主要管理浏览器窗口,提供了大量的、独立的、可以与浏览器窗口进行互动的功能,这些功能与任何网页无关。 BOM 是对象组成,其中代表浏览器窗口的 windows 对象是 BOM 的顶层,其它对象都是其子对象。
BOM 标准归 W3C 下的 HTML5。
window 对象是 BOM 的核心,代表窗口的一个实例。在浏览器中, window 既是 JavaScript 访问窗口的接口,也是 JavaScript 的全局对象( Global ),因此在声明的全局作用域的变量和函数也是 window 对象的属性和方法。
通过 Window 对象可以控制窗口的大小和位置、由窗口弹出的对话框、打开窗口与关闭窗口,还可以控制窗口上是否显示地址栏、工具栏和状态栏等栏目。对于窗口中的内容, Window 对象可以控制是否重载网页、返回上一个文档或前进到下一个文档。
在框架方面, Window 对象可以处理框架与框架之间的关系,并通过这种关系在一个框架处理另一个框架中的文档。 Window 对象还是所有其它对象的顶级对象。通过对 Window 对象的子对象进行操作,可以实现更多的动态效果。 Window 对象作为对象的一种,也有着其自己的方法和属性。
通过 window 访问窗口,同时与浏览器相关的其它客户端对象都是 window 的子对象,通过 window 进行引用 。
<body>
或 <frameset>
标签出现时, window 对象就被自动创建var a = 'a';
window.b = 'window.b';
c = 'c';
alert(delete window.a); // false
alert(delete window.b); // true
alert(delete window.c); // true
alert(window.a); // a
alert(window.b); // undefined
alert(window.c); // undefined
使用 var 语句声明的全局变量, window 会为这个属性定义一个名为 "configurable" 的特性,设置为 false ,就无法通过 delete 删除。
直接使用未声明的变量,会抛出异常。