BOM

BOM(即浏览器对象模型)是一个用于访问浏览器和计算机屏幕的对象集合。我们可以通过全局对象window和window.screen来访问这些对象。

window对象

在JavaScript中,每个宿主环境都有一个全局对象。具体到浏览器环境中,这就是window对象了。环境中所有的全局变量实际上都是该对象的属性。同样的,所有的JavaScript核心函数也都是window对象的方法。

window.navigator

navigator是一个用于反映浏览器本身及其功能信息的对象。例如其中的navigator.userAgent是一个用于浏览器识别的长字符串。

由于各种浏览器的功能是各不相同的,开发人员需要根据userAgent字符串来识别不同的浏览器,并提供不同版本的代码。这种字符串很难追踪到所有的浏览器以及其各种版本。所以,直接检测我们使用的功能在浏览器中是否存在要简单的多,例如:

if(typeof window.addEventListener === 'function'){

}else{

}

另外,还有一个原因也促使我们避免使用userAgent检测浏览器,即在某些浏览器中,用户是可以对该字符串进行修改,并将其伪装成其他浏览器

window.location

location属性石一个用于存储当前载入页面的URL信息的对象。例如,其中的location.href显示的是完整的URL,而location.hostname则只显示相关的域名信息。下面,我们通过一个简单的循环列出location对象的完整属性列表。

另外,location对象还提供了三个方法,分别是reload()、assign()和replace()。需要注意的是页面导航存在着许多不同的方式,下面列出的只是其中一小部分。

window.location.href="http://www.baidu.com/";
location.href="http://www.baidu.com/";
location="http://www.baidu.com/";
location.assign('http://www.baidu.com/');

replace()方法的作用与assign基本相同,只不过它不会再浏览器的历史表中留下痕迹:

location.replace("http://www.yahoo.com");

另外,如果我们想重新载入某个页面,可以调用:

location.reload()

或者,也可以让location.href属性指向自己:

window.location.href=window.location.href;
location=location;

window.history

history属性允许我们在同一个浏览器会话中存储有限数量的访问记录。例如,我们可以通过以下方式来查看用户可在这之前访问了多少页面:

window.history.length

但是这种访问是受限制的,例如像下面这样访问是不被允许的:

但是我们可以在当前用户会话中对个页面进行来回切换,就像在浏览器中单击后退/前进按钮一样:

history.forward()
history.back()

另外,我们也可以用history.go()来实现页面跳转:

history.go(0);//重载当前页

window.frames

frames属性是当前页面中所有iframe元素的集合,可以通过frames[]访问具体的iframe元素的window对象。

但是,无论当前页面中是否存在iframe元素,window.frames属性总是存在的,并指向了window对象本身。

window.screen

screen属性所提供的是浏览器以外的桌面信息。例如,screen.colorDepth属性所包含的是当前显示器的色位。另外,我们还可以查看当前屏幕的实际状态:

其他

window.open()是可以让我们打开新浏览器窗口的方法(即弹出窗)。如今,多数浏览器的策略及其用户设置都会阻止浏览器的弹出窗,如果没有用户的运行,我们任何打开新窗口的举动都有可能被阻止。

window.close()方法则是用来关闭新窗口的。

 

window.moveTo()、window.resizeTo()、window.moveBy()

window.resizeTo()、window.resizeBy()

posted on 2015-02-09 14:32  凡一二三  阅读(451)  评论(0编辑  收藏  举报