BOM简介

BOM 即浏览器对象模型(Browser Object Model),指的是Web浏览器暴露的所有对象组成的表示模型。既没有标准的实现,也没有严格的定义,浏览器厂商可以自由的实现BOM。因此一些浏览器的独立API并不互相支持。

作为显示文档的窗口, 浏览器程序将其视为对象的分层集合。当浏览器分析文档时, 它将创建一个对象的集合, 以定义文档, 并详细说明它应如何显示。浏览器创建的对象称为文档对象。它是浏览器使用的更大的对象集合的一部分。此浏览器对象集合统称为浏览器对象模型或BOM。
BOM层次结构的顶层是窗口对象window, 它包含有关显示文档的窗口的信息。某些窗口对象本身就是描述文档和相关信息的对象。

下面列出一些常用的属性和方法,事件相关请查看MDN

Constructors

Image

  1. var htmlImageElement = new Image(width, height);

Options

  1. var optionElementReference = new Option(text, value, defaultSelected, selected);

Worker

  1. var myWorker = new Worker('worker.js');

属性

Window.console

Window.devicePixelRatio

返回当前显示器的物理像素和设备独立像素的比例。这个值的改变不会触发任何回调函数或者被其他事件监听(例如,如果你拖动窗口使其在不同屏幕密度的显示器上显示)

Window.document

Window.frameElement

返回嵌入当前window对象的元素(比如 <iframe> 或者 <object>),如果当前window对象已经是顶层窗口,则返回null.

  1. var frameEl = window.frameElement;
  2. // 如果当前窗口被包含在一个框架里面,则将该框架的地址跳到'http://mozilla.org/'
  3. if (frameEl)
  4. frameEl.src = 'http://mozilla.org/';

Window.frames

返回当前窗口,一个类数组对象,列出了当前窗口的所有直接子窗口

  1. frameList = window.frames;
  • frameList是一个frame对象的集合,它类似一个数组,有length属性且可以使用索引([i])来访问。
  • frameList === window 计算结果为true。
  • 在window.frames类数组中的每一项都代表了窗口对应给定对象的或