虽然ECMAScript把浏览器对象模型(BOM, Browser Object Model)描述为JavaScript的核心,但实际上BOM是使用JavaScript开发Web应用程序的核心。
BOM提供了与网页无关的浏览器功能对象。
多年来,BOM是在缺乏规范的背景下发展起来的,因此既充满乐趣又问题多多。毕竟,浏览器开发商都按照自己的意愿来为它添砖加瓦。
最终,浏览器实现之间共通的部分成为了事实标准,为Web开发提供了浏览器间互操作的基础。
HTML5规范中有一部分涵盖了BOM的主要内容,因为W3C希望将JavaScript在浏览器中最基础的部分标准化。
12.6 小结
浏览器对象模型(BOM, Browser Object Model)是以window对象为基础的,这个对象代表了浏览器窗口和页面可见的区域。
window对象也被复用为ECMAScript的Global对象,因此所有全局变量和函数都是它的属性,而且所有原生类型的构造函数和普通函数也都从一开始就存在于这个对象之上。
本章讨论了BOM的以下内容:
❑ 要引用其他window对象,可以使用几个不同的窗口指针。
❑ 通过location对象可以以编程方式操纵浏览器的导航系统。通过设置这个对象上的属性,可以改变浏览器URL中的某一部分或全部。
❑ 使用replace()方法可以替换浏览器历史记录中当前显示的页面,并导航到新URL。
❑ navigator对象提供关于浏览器的信息。提供的信息类型取决于浏览器,不过有些属性如userAgent是所有浏览器都支持的。
BOM中的另外两个对象也提供了一些功能:
screen对象中保存着客户端显示器的信息。
history对象提供了操纵浏览器历史记录的能力,开发者可以确定历史记录中包含多少个条目,并以编程方式实现在历史记录中导航,而且也可以修改历史记录。
