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

Javascript
JavaScript窗口功能指南之检查一个窗口是否存在
用JAVASCIRPT写的一个动态显示日期的函数!
JavaScript窗口功能指南之打开一个新窗口
JavaScript窗口功能指南之在窗口中书写内容
JavaScript窗口功能指南之引用已打开的窗口
JavaScript窗口功能指南之发挥窗口特征
JavaScript窗口功能指南之命名窗口和框架
JavaScript窗口功能指南之创建对话框
对连串英文自动换行的解决方法 IE5.5 无忧脚本
javascript扫雷游戏,版本二
window.external的使用
JavaScript 是什麽?
SelectBox in Frame
24点终结者(javascript)
用Javascript转换源代码
JS特效之状态栏冒泡
JavaScript:实现滚动带链接的字幕
jscript错误代码及相应解释大全
实现随鼠标飘浮移动文字的JavaScript
怎样捕捉 Delete 键

Javascript 中的 javascript document.compatMode兼容性


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 41 ::
收藏到网摘: 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;
}