大家都知道用来确定和修改window对象位置和属性的方法有很多,但这些方法又有很多的区别,让人烦恼不已。
1.用来表示窗口相对于屏幕左边和上边的位置:
sreenLeft和screenTop:IE、Safari、Opera和Chrome提供sreenLeft和screenTop
screenX和screenY:Firefox、Safari、Chrome都提供了。
值得注意的是:在Opera中,虽然提供了这两种方法,但是结果并不对应,所以建议不要在Opera中使用他们。
另外,在IE、Opera中sreenLeft和screenTop是指从屏幕左边和上边到由window对象表示的页面可见区域的距离。
在Firefox、Safari、Chrome中sreenLeft和screenTop是指整个浏览器窗口相对于屏幕的坐标值。
对于页面中包含框架的,top.screenX和top.screenY在Firefox、Safari、Chrome中即页面设置了外边距发生了偏移,相对于window对象使用,每次都会返回相同的值,而在IE和Opera中,则会返回框架相对于屏幕边界的一个精确坐标值。
很多人这时候会想到moveTo()和moveBy()两个方法,把他们移动到精确的位置,然而这也存在兼容性问题,在Opera和IE7(及更高版本)中默认禁用的,而且不适合在有框架的页面使用,只适用于最外层的window对象。
2.窗口大小
窗口的大小浏览器都支持:innerWidth、innerHeight、outerWidth、outerHeight,然而,在IE9+、Safari、Firefox中,outerWidth和outerHeight都会返回浏览器窗口本身的尺寸。在Opera中,返回页面视图容器的大小。在chrome中,4个属性返回相同的值,即视口大小而非浏览器窗口大小。IE8及更早期的版本是没有提供关于尺寸的属性的。