window对象
BOM的核心对象是window,表示浏览器的一个实例。window对象既是JavaScript访问浏览器的窗口的一个接口,是ES规定的Global对象。
定义全局变量与在window对象上直接定义属性还是有一点差别:全局对象不能通过delete操作符删除,而直接在window对象上定义的属性可以。
var age = 29;
window.color = "red";
delete window.rate; //false
delete window.color; //true
alter(window.age); //29
alter(window.color); //undefined
查询window对象,可以知道某个可能未声明的变量的存在。
窗口关系和框架
在frames集合中,可以通过数值索引(从0开始,从左至右,从上自下)或者框架名称来访问相应的window对象。
最好使用top而非window来引用一般的上下框架。
top.frames[0]、window.frames[0]
parent对象指向当前对象的直接上层框架,在不存在框架的情况下,parent一定等于top。
窗口位置
screenLeft和screenTop属性,分别表示窗口相对于屏幕左边和商标的位置。(适用于IE、Safari、Opera、Chrome)但是这个方法容易在不同浏览器中出现不同情况。
moveTo()和moveBy()方法可以将窗口精确的移动到一个新位置。moveTo()接受新位置的x、y坐标值;moveBy()接受在水平位置和数值位置上移动的像素值。这两种方法只能在window对象中使用。
窗口大小
返回浏览器本身的尺寸
innerWidth
innerHeight
返回浏览器窗口本身的尺寸
outerWidth
outerHeight
DOM方法:document.documentElement.clientWidth和document.documentElement.clientHeight中保存了页面视口的信息。
IE6中只在标准模式下有效,混杂模式取得方法不同。
resizeTo()和resizeBy()方法可以调整浏览器窗口的大小。resizeTo()接受浏览器窗口的新高度和新宽度,resizeBy()接受新窗口和原窗口的高度差。
导航和打开窗口
window.open接受四个参数:要加载的URL、窗口目标、一个特性字符串以及一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值。
close()方法还可以关闭通过window.open()打开的弹出窗口。浏览器主窗口不能在未得到用户允许的情况下关闭,而弹出窗口可以通过调用top.close()关闭。
新建的window对象中有opener属性,保存着打开它的原始窗口对象。
弹出屏蔽可以通过catch-try块进行检测。
间歇调用和超时调用
setTimeout()方法和用来清除的clearTimeout()方法
setInterval()方法和用来清除的clearInterval()方法
系统对话框
alert()
confirm()
有确认和取消
prompt()
输入值
以上对话框都是同步和模态的。显示这些对话框时代码会停止,关掉后恢复进行。