您的位置:首页 > Web前端 > JavaScript

JavaScript高级程序设计之BOM之screen 对象& history 对象第8.3讲笔记

2015-10-13 13:57 537 查看
8.4 screen 对象

JavaScript 中有几个对象在编程中用处不大,而screen 对象就是其中之一。screen 对象基本上只

用来表明客户端的能力,其中包括浏览器窗口外部的显示器的信息,如像素宽度和高度等。每个浏览器
中的screen 对象都包含着各不相同的属性,下表列出了所有属性及支持相应属性的浏览器。





这些信息经常集中出现在测定客户端能力的站点跟踪工具中,但通常不会用于影响功能。不过,有

时候也可能会用到其中的信息来调整浏览器窗口大小,使其占据屏幕的可用空间,例如:

window.resizeTo(screen.availWidth, screen.availHeight);

前面曾经提到过,许多浏览器都会禁用调整浏览器窗口大小的能力,因此上面这行代码不一定在所

有环境下都有效。

涉及移动设备的屏幕大小时,情况有点不一样。运行iOS 的设备始终会像是把设备竖着拿在手里一

样,因此返回的值是768×1024。而Android 设备则会相应调用screen.width 和screen.height 的值。

8.5 history 对象

history 对象保存着用户上网的历史记录,从窗口被打开的那一刻算起。因为history 是window

对象的属性,因此每个浏览器窗口、每个标签页乃至每个框架,都有自己的history 对象与特定的

window 对象关联。出于安全方面的考虑,开发人员无法得知用户浏览过的URL。不过,借由用户访问

过的页面列表,同样可以在不知道实际URL 的情况下实现后退和前进。

使用go()方法可以在用户的历史记录中任意跳转,可以向后也可以向前。这个方法接受一个参数,

表示向后或向前跳转的页面数的一个整数值。负数表示向后跳转(类似于单击浏览器的“后退”按钮),

正数表示向前跳转(类似于单击浏览器的“前进”按钮)。来看下面的例子。

//后退一页
history.go(-1);
//前进一页
history.go(1);
//前进两页
history.go(2);
也可以给go()方法传递一个字符串参数,此时浏览器会跳转到历史记录中包含该字符串的第一个

位置——可能后退,也可能前进,具体要看哪个位置最近。如果历史记录中不包含该字符串,那么这个

方法什么也不做,例如:
//跳转到最近的wrox.com 页面
history.go("wrox.com");
//跳转到最近的nczonline.net 页面
history.go("nczonline.net");另外,还可以使用两个简写方法back()和forward()来代替go()。顾名思义,这两个方法可以

模仿浏览器的“后退”和“前进”按钮。
//后退一页

history.back();

//前进一页

history.forward();

除了上述几个方法外,history 对象还有一个length 属性,保存着历史记录的数量。这个数量

包括所有历史记录,即所有向后和向前的记录。对于加载到窗口、标签页或框架中的第一个页面而言,

history.length 等于0。通过像下面这样测试该属性的值,可以确定用户是否一开始就打开了你的

页面。

if (history.length == 0){

//这应该是用户打开窗口后的第一个页面

}

虽然history 并不常用,但在创建自定义的“后退”和“前进”按钮,以及检测当前页面是不是

用户历史记录中的第一个页面时,还是必须使用它。

当页面的URL 改变时,就会生成一条历史记录。在IE8 及更高版本、Opera、

Firefox、Safari 3 及更高版本以及Chrome 中,这里所说的改变包括URL 中hash 的变

化(因此,设置location.hash 会在这些浏览器中生成一条新的历史记录)。    

8.6

小结

浏览器对象模型(BOM)以window 对象为依托,表示浏览器窗口以及页面可见区域。同时,window

对象还是ECMAScript 中的Global 对象,因而所有全局变量和函数都是它的属性,且所有原生的构造

函数及其他函数也都存在于它的命名空间下。本章讨论了下列BOM 的组成部分。

在使用框架时,每个框架都有自己的window 对象以及所有原生构造函数及其他函数的副本。

每个框架都保存在frames 集合中,可以通过位置或通过名称来访问。

有一些窗口指针,可以用来引用其他框架,包括父框架。

top 对象始终指向最外围的框架,也就是整个浏览器窗口。

parent 对象表示包含当前框架的框架,而self 对象则回指window。

使用location 对象可以通过编程方式来访问浏览器的导航系统。设置相应的属性,可以逐段

或整体性地修改浏览器的URL。

调用replace()方法可以导航到一个新URL,同时该URL 会替换浏览器历史记录中当前显示

的页面。

navigator 对象提供了与浏览器有关的信息。到底提供哪些信息,很大程度上取决于用户的浏

览器;不过,也有一些公共的属性(如userAgent)存在于所有浏览器中。

BOM 中还有两个对象:screen 和history,但它们的功能有限。screen 对象中保存着与客户端

显示器有关的信息,这些信息一般只用于站点分析。history 对象为访问浏览器的历史记录开了一个

小缝隙,开发人员可以据此判断历史记录的数量,也可以在历史记录中向后或向前导航到任意页面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息