属性 | 说明 | IE | FF | Safari/Chrome | Opera |
availHeight | 屏幕的像素高度减系统部件高度之后的值(只读) | √ | √ | √ | √ |
availLeft | 未被系统部件占用的最左侧的像素值(只读) | √ | √ | ||
availTop | 未被系统部件占用的最上方 的像素值(只读) | √ | √ | ||
availWidth | 屏幕的像素宽度减系统部件宽度之后的值(只读) | √ | √ | √ | √ |
bufferDepth | 读,写用于呈现屏外位图的位数 | √ | |||
colorDepth | 用于表现颜色的位数;多数系统都是32(只读) | √ | √ | √ | √ |
deviceXDPI | 屏幕实际的水平DPI(只读) | √ | |||
deviceYDPI | 屏幕实际的垂直DPI(只读) | √ | |||
fontSmoothingEnabled | 表示是否启用了字体平滑(只读) | √ | |||
height | 屏幕的像素高度 | √ | √ | √ | √ |
left | 当前屏幕距左边的像素距离 | √ | |||
logicalXDPI | 屏幕逻辑的水平DPI(只读) | √ | |||
logicalYDPI | 屏幕逻辑的垂直DPI(只读) | √ | |||
pixelDepth | 屏幕的位深(只读) | √ | √ | √ | |
top | 当前屏幕距上边的像素距离 | √ | |||
updateInterval | 读,写以毫秒表示的屏幕刷新时间间隔 | √ | |||
width | 屏幕的像素宽度 | √ | √ | √ | √ |
8.5 history对象
history对象保存着用户的上网历史
从窗口被打开的那一刻起,因为history是window对象的属性,因此每个浏览器窗口,每个标签页乃至每个框架,都有自己的history对象与特定的window对象关联.出于安全方面的考虑,开发人员无法得知浏览过的URL.不过,借由用户访问过的页面列表,同样可以在不知道实际URL的情况下实现后退和前进.
使用go()方法可以在用户的历史记录中任意跳转,可以向后也可以向前.这个方法接受一个参数,表示向后或向前跳转的页面数的一个整数值.负数表示向后跳转(类似于单击浏览器的"后退"按钮),正数表示向前跳转(类似于单击浏览器的"前进"按钮).
//后退一页 history.go(-1); //前进一页 history.go(1); //前进两页 history.go(2);
//跳转到最近的www.baidu.com history.go(www.baidu.com);
如果历史记录中不包含该字符串,那么这个方法什么也不做.
还可以使用两个简写方法back()和forward()来代替go().顾名思义,这两个方法可以模仿浏览器的"后退"和"前进"按钮.
//后退一页 history.back(); //前进一页 history.forward();
history对象还有一个length属性,保存着历史记录的数量.这个数量包括所有历史记录,即所有向后和向前的记录.
对于加载到窗口,标签页或框架中的第一个页面而言,history.length等于0.
if(history.length==0){ //这应该是用户打开窗口后的第一个页面 }
注意:当页面的URL改变时,就会生成一条历史记录.在IE8及更高版本,Opera,FF,safari及更高版本以及Chrome中,这里所说的改变包括URL中的hash的变化(因此,设置location.hash会在这些浏览器中生成一条新的历史记录).
8.6 小结
浏览器对象模型(BOM)以window对象为依托,表示浏览器窗口以及页面可见区域.同时,window对象还是ECMAScript中的Global对象,因而所有全局变量和函数都是它的属性,且所有原生的构造函数及其他函数也都存在于它的命名空间下.
在使用框架时,每个框架都有自己的window对象以及所有原生构造函数及其他函数的副本.每个框架都保存在frames集合中,可以通过位置或通过名称来访问.
有一些窗口指针,可以用来引用其他框架,包括父框架.
top对象始终指向最外围的框架,也就是整个浏览器窗口.
parent对象表示包含当前框架的框架,而self对象则回指window.
使用location对象可以通过编程方式来访问浏览器的导航系统.设置相应的属性,可以逐段或整体性地修改浏览器的URL.
调用replace()方法可以导航到一个新的URL,同时该URL会替换浏览器记录中当前显示的页面.
navigator对象提供了与浏览器有关的信息.到底提供哪些信息,很大程度上取决于用户的浏览器,不过,也有一些公共的属性(如userAgent)存在于所有浏览器中.
BOM中还有两个对象:screen和history,但它们的功能有限.screen对象中保存着与客户端显示器有关的信息,这些信息一般只用于站点分析.