DOCTYPE对javascript的影响

不同的<!DOCTYPE>定义会影响到javascript的正常运行以及运行结果。

今天我在javascript中想取得一个当前网页可见区域的高度时发生一个问题:

不管我怎么缩放当前的窗口,取得的可见区域我值都是一样的,我在IE、Firefox上测试结果都一样。

我想起以前发现定义<!DOCTYPE>和不定义<!DOCTYPE>会影响到Javascript的运行,我就到百度搜索了一下,才发现我的猜测是正确的,果然在这两种情况下,想得到可见区域的方法是不一样的:

在来自IE6以后如果在页面顶上加了doctype后,一般是在获取clientWidth, clientHeight,offsetWidth, offsetHeight,scrollWidth, scrollHeight,scrollTop, scrollLeft会返回不正确的值。
因为在加了doctype后,在ie6中这些document.body的属性已经重新分配给了document.documentElement

比如:原来document.body.clientHeight,就要改成document.documentElement.clientHeight


为了自适应,可以改了下代码:

var height = document.documentElement.clientHeight==0?document.body.clientHeight:document.documentElement.clientHeight

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值