Skip to content

概述 ​

本节目标:理解“概述”的核心思路,并能把它用于实际开发或面试表达。 ECMAScript是JavaScript的核心。 但在Web中使用JavaScript,那么BOM (浏览器对象模型)则无疑才是真正的核心。

BOM提供了很多对象,用于访何浏览器的功能,这些功能与任何网页内容无关。多年来,缺少事实上的规范导致BOM既有意思又有何题,因为浏览器提供商会按照各自的想法随意去扩展它。于是,浏览器之间共有的对象就成为了事实上的标准。这些对象在浏览器中得以存在,很大程度上是由于它们提供了与浏览器的互操作性。

W3C为了把浏览器中JavaScript最基本的部分标准化,已经将BOM的主要方面纳入了 HTML5的规范中。

IE3和Netscape Navigator3有一个共同特色,那就是支持可以访问和操作浏览器窗口的浏览器对象模型(BOM, Browser Object Model)。开发人员使用BOM可以控制浏览器显示的页面以外的部分。而BOM真正与众不同的地方(也是经常会异常问题的地方),还是它作为JavaScript实现的一部分但却没有相关的标准。这个问题在HTML5中得到了解决,HTML5致力于把很多BOM功能写入正式规范。HTML5发布后,很多关于BOM的困惑烟消云散。

从根本上讲,BOM只是处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的Javascript扩展算作BOM的一部分,如下面:

弹出新浏览器窗口的功能;
提供浏览器详细信息的navigator对象;
提供浏览器所加载页面详细信息的location对象;
提供用户显示器分辨率详细信息的screen对象;
对cookies的支持;
像XMLHttpRequest和IE的ActiveXObjectt这样的自定义对象。

由于没有BOM标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准。现在有了HTML5,BOM实现的细节有望朝着兼容性越来越高的方向发展。

本站总访问 — 次