BOM
window对象
BOM的核心对象是window,它表示浏览器的一个实例,在网页中定义的任何一个对象、变量和函数都以window作为其global对象。
-
全局作用域
在全局作用域中声明的变量、函数都会变成window对象的属性和方法。
全局变量不能通过delete操作符删除,而直接在window对象上定义的属性可以
-
窗口关系及框架
如果页面中包含框架,则每个框架都拥有自己的window对象,并且保存在frames集合中,在frames集合中,可以通过数值索引(从0开始,从左至右,从上到下)或者框架名称来访问相应的window对象,每个window对象都有一个name属性,其中包含框架的名称。
top对象始终指向最外围的框架,parent对象表示包含当前框架的框架,self对象始终指向window
-
窗口位置
screenLeft、screenTop分别表示窗口相对于屏幕左边和上边的位置
screenX、screenY(Firefox)
使用moveTo和moveBy方法可以调整窗口位置
-
窗口大小
innerWidth、innerHeight、outerWidth、outerHeight
chrome中,这四个都返回视口viewport的大小,而非浏览器窗口
对于混杂模式下的chrome,无论通过document.documentElement还是document.body中的clientWidth和clientHeight属性,都可以取得视口的大小
使用resizeTo()和resizeBy()可以调整浏览器窗口的大小
-
导航和打开窗口
使用window.open()可以导航到一个特定的url
-
间歇调用和超时调用
超时调用setTimeout()在指定的时间过后执行代码
间歇调用setInterval()每隔指定的时间就执行一次代码
超时调用的代码都是在全局作用域中执行的,因此函数中this的值在非严格模式下指向window对象,在严格模式下是undefined
-
系统对话框
浏览器通过alert、confirm、prompt方法可以调用系统对话框向用户显示消息。显示这些对话框的时候代码会停止执行,而关掉这些对话框后代码又会恢复执行
location对象
location对象提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能,既是window对象的属性也是document对象的属性。它可以将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段(hash、host、hostname、href、pathname、port、protoco、search)
location.assign()=window.location=location.href:立即打开新URL并在浏览器的历史纪记录中生成一条记录
replace()不会在历史记录中生成新记录
reload()重新加载当前显示的页面,如果不传递参数,页面就会以最有效的方式重新加载(比如缓存),如果参数为true,则会强制从服务器加载
navigator对象
识别客户端浏览器的事实标准
- 检测插件navigator.plugins.name/description/filename/length
- 注册处理程序registerContentHandler()和 registerProtocolHandler()可以让一个站点指明它可以处理特定类型的信息
screen对象
用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素高度和宽度等,用处不大。
history对象
保存着用户上网的历史记录。
使用go()方法可以在用户的历史记录中任意跳转,负数后退(=back()),正数前进 (=forward())
length属性,保存着历史记录的数量,第一个页面为0