BOM(浏览器对象模型)让JavaScript可以和浏览器进行交流。
一 BOM是什么
当我们使用浏览器打开一个网页时,浏览器会为该页面创建一个窗口,专门用于展示该网页的内容。这时浏览器会在内存中创建一个对象,专门用于记录描述该窗口的属性和状态变化等信息,这个对象就被称为浏览器对象模型,通常我们也叫它全局对象。
BOM的核心是一个window对象,一定程度上window对象即代表了这个浏览器窗口。BOM不像DOM和JavaScript那样有自己的标准,它最开始只是Netscape浏览器标准的一小部分,而现代浏览器都实现了自己的BOM,但是为了能与JavaScript交互,各大浏览器都实现了一些相同的属性和方法,所以我们在使用BOM时请注意他们的兼容性问题。
另外,如果文档包含框架(在一个页面中使用了iframe或frame标签),浏览器将为该标签创建一个新的window对象,并把它保存在父window对象的frames属性中。
二 BOM核心
上面已经提到,BOM的核心是一个window对象,这个window对象又包含了5个核心对象:
document:文档对象
history:客户端浏览历史记录
location:网页地址
navigator:客户端浏览器信息
screen:客户端屏幕信息
三 window对象常用方法和属性
Window对象是全局对象,所有的表达式都在该环境中计算,所有没有显式的指定归属的方法和变量都将被归到window对象,成为window的属性和方法。所以当我们在使用window的方法时,完全不用像以前一样通过点的方式调用。
例如我们之前常用的alert(),而不用写window.alert().
1,属性
innerheight:文档显示区的高度(整数)
innerwidth:文档显示区的宽度(整数)
name:设置或获取窗口的名称
status:设置状态栏显示的文本
下面四个属性都是只读的,表示窗口的左上角在整个显示器屏幕上的坐标。返回值是整数。
screenLeft/screenX
screenTop/screenY
2,方法
alert()
confirm()
prompt()
这3个提示框在我的第一篇博文中就讲过了,这里不再赘述。
open():打开新的窗口或查找一个已命名的窗口
close():关闭窗口
下面这两个是定时器,在web开发中使用频率极高,以后会单独讲解。
setInterval()
setTimeuut()
一般来说,Window 对象的方法都是对浏览器窗口或框架进行某种操作。而 alert() 方法、confirm() 方法和 prompt 方法则不同,它们通过简单的对话框与用户进行交互。
window对象还有很多其他的属性和方法,想了解更多可以打开任意网址,F12打开控制台,输入window即可返回Window对象。
下一篇将详细介绍window的5个核心模块。