当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript document.compatMode兼容性

Javascript
站长推荐的用js实现的多浏览器支持的图片轮换展示效果ie,firefox
用js实现的十进制的颜色值转换成十六进制的代码
DHTML form validation
js资料toString 方法
js资料prototype 属性
js实现的网站首页随机公告随机公告
一个效果写的HashTable代码
用js实现的一个Flash滚动轮换显示图片代码生成器
关于javascript函数的几个话题
极致之美——百行代码实现全新智能语言
htm调用JS代码
斑马线效果代码
从新浪弄下来的全屏广告代码 与使用说明
用js实现预览待上传的本地图片
用javascript自动显示最后更新时间
表单提交时自动复制内容到剪贴板的js代码
用roll.js实现的图片自动滚动+鼠标触动的特效
一段js小代码,计算距春节还有多少天
js中设计一段程序,让它能够打印自己的方法收集藏
自动生成文章摘要的代码[JavaScript 版本]

Javascript 中的 javascript document.compatMode兼容性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 254 ::
收藏到网摘: n/a

文档模式在开发中貌似很少用到,最常见的是就是在获取页面宽高的时候,比如文档宽高,可见区域宽高等。 IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有很大差别,而在不声明Doctype的情况下,IE默认又是Quirks Mode。所以为兼容性考虑,我们可能需要获取当前的文档渲染方式。
document.compatMode正好派上用场,它有两种可能的返回值:BackCompat和CSS1Compat。
BackCompat:标准兼容模式关闭。浏览器客户区宽度是document.body.clientWidth;CSS1Compat:标准兼容模式开启。 浏览器客户区宽度是document.documentElement.clientWidth。
那么写了个准确获取网页客户区的宽高、滚动条宽高、滚动条Left和Top的代码:
复制代码 代码如下:

if (document.compatMode == "BackCompat") {
cWidth = document.body.clientWidth;
cHeight = document.body.clientHeight;
sWidth = document.body.scrollWidth;
sHeight = document.body.scrollHeight;
sLeft = document.body.scrollLeft;
sTop = document.body.scrollTop;
}
else { //document.compatMode == "CSS1Compat"
cWidth = document.documentElement.clientWidth;
cHeight = document.documentElement.clientHeight;
sWidth = document.documentElement.scrollWidth;
sHeight = document.documentElement.scrollHeight;
sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
}