8.1window对象
BOM的核心对象是window,表示浏览器的一个实例。
window对象有双重角色,既可以通过就是访问浏览器窗口的接口,又是ECMAscript规定的Global对象
8.1.1全局作用域
定义全局变量与在window对象上直接定义属性的差别在于全局变量不能通过delete操作符删除,而直接子啊window对象的定义的属性可以
常识访问未声明的变量会抛出错误。但是通过查询window对象可以知道某个未声明的变量是否存在
8.1.2 窗口关系及框架
如果页面中有frames,则每个frames都拥有自己的window对象,并且保存在frames对象中。
可以用window.frames[0]或者window.frames[framesName]来引用框架
8.1.3 窗口的位置
moveTo():接收新位置的x,y坐标值
moveBy():接收在水平和垂直方向上移动的像素数
8.1.4 窗口大小
resizeTo():接收浏览器窗口的新宽度和新高度
resizeBy():接收新窗口与原窗口的宽度和高度之差
var pageWidth = window.innerWidth,
pageHeight = window.innerHeight;
if(typeof pageWidth != ‘number’){
if(document.compatMode == ‘CSS1Compat’){
pageWidth = document.documentElement.clientWidth;
pageHeight = document.documentElement.clientHeight;
} else {
pageWidth = document.body.clientWidth;
pageHeight = document.body.clientHeight;
}
}
FireFox,Safari,Opera和Chrome有4个属性:innerWidth,innerHeight,outerWidth,outerHeight。在Safari和FireFox,outerWidth和outerHeight返回浏览器窗口本身的尺寸。Opera中这两个属性表示页面视图容器的大小。而innerWidth和innerHeight表示该容器中页面视图区的大小。在Chrome中,outerWidth,outerHeight与innerWidth,innerHeight返回的相同的值,即视口的大小而非浏览器窗口的大小。
在ie6标准模式下:document.documentElement.clientWidth, document.documentElement.clientHeight这两个值有效,而在混杂模式下:则通过document.body.clientWidth,document.body.clientHeight,而在chrome下这两种方式都可以取得相同的值。
8.1.5 导航和打开窗口
window.open();
8.1.6 间歇调用和超时调用
setTimeout(),setInterval();
8.1.7 系统对话框
alert(),confirm()和prompt();
8.2location对象
location提供与当前窗口中加载的文档有关的信息
它既是window对象又是document对象
8.2.1查询字符串参数
location.search返回从问号到URL末尾的所有内容,但却没有办法逐个访问其中的每个查询字符串参数
8.2.2位置操作
location.href()
通过location.href会是浏览器中生成一条新记录,因此用户单击“后退”按钮都会导航到前一个页面,要禁用这种行为,可以使用location.replace方法。
location.reload():重新加载(有可能从缓存中加载)
location.reload(true):重新加载(从服务器重新加载);