1.概述
通常情况下,页面中的js代码都有一系列可以访问的对象,他们可以分成以下几种情况。
- ECMAScript核心对象
- DOM:当前载入页面所拥有的对象
- BOM:页面以外事务所拥有的的对象
其中,DOM意为文档对象模型,而BOM意为浏览器对象模型
DOM是标准。
BOM则不是任何标准的一部分。它的一部分对象集合得到了所有的主流浏览器的支持,而另一部分则属于特定浏览器的特性。由于HTML5将各个浏览器的通用行为进行了标准化,所以其中包含了通用的BOM对象。另外,移动设备也包含一些特定的BOM对象,这些对象一般没有必要在桌面计算机中实现,但对于移动设备很重要,例如地理位置,摄像头接入,震动感,触摸事件,通话和短信收发。
2.BOM
BOM(即浏览器对象模型)是一个用于访问浏览器和计算机屏幕的对象集合。我们可以通过全局对象window来访问这些对象。
在js中,每个宿主环境都有一个全局对象。具体到浏览器环境中,就是window对象了。环境中所有的全局变量都可以通过该过对象的属性来访问,例如:
window.somevar = 1;
1
somevar
1
同样的,所有的js核心函数也都是window对象的方法。例如:
parserInt('123a456')
123
window.parserInt('123a456')
123
除了作为全局对象的引用以外,window对象还有另一个作用,就是提供关于浏览器环境的信息。每个frame,iframe、弹出窗以及浏览器标签页都有各自的window对象。
3.window.navigator
navigator是一个用于反映浏览器及其功能信息的对象。例如,navigator.userAgent属性是一个用于浏览器识别的长字符串。