窗口兼容性问题的一些小总结

大家都知道用来确定和修改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及更早期的版本是没有提供关于尺寸的属性的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值