不同的<!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
DOCTYPE对javascript的影响
精选 翻译上一篇:div 拖动 移动
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
After Effects 2020中,针对预合成添加某个效果后,对合成中的各个图层有影响吗?
本文回答After Effects 2020中,针对预合成添加某个效果后对合成中的各个图层的问题。
AE After Effect 2020 预合成 合成 图层 -
对象的描述属性对proxy的影响,defineProperties对proxy影响
对象的描述属性对proxy的影响,defineProperties对proxy影响
javascript 前端 proxy definePropertie 严格模式