当前位置: 代码迷 >> Web前端 >> 用compatMode稽查当前渲染模式
  详细解决方案

用compatMode稽查当前渲染模式

热度:112   发布时间:2012-11-22 00:16:41.0
用compatMode检查当前渲染模式

对于document .compatMode , 很多朋友可能都根我一样很少接触,知道他的存在却不清楚他的用途。今天在ext中看到 document .compatMode 的使用,感觉这个对于我们开发兼容性的web页面还是很有帮助,我们都知道,IE 对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有很大差别,而在不声明Doctype的情况下,IE默认又是Quirks Mode。所以为兼容性考虑,我们可能需要获取当前的文档渲染方式。
????? document .compatMode 正 好派上用场,它有两种可能的返回值:BackCompat和CSS1Compat,对其解释如下:
BackCompat Standards-compliant mode is not switched on. (Quirks Mode)
CSS1Compat Standards-compliant mode is switched on. (Standards Mode)

???? 在实际的项目中,我们还需要在获取浏览是否IE,这样就可以得到IE的渲染模式了。在Ext中的代码:isBorderBox=isIE&& amp;!isStrict。



当文档有了标准声明时, document .compatMode 的值就等于 "CSS1compat", 因此, 我们可以根据 document .compatMode 的值来判断文档是否加了标准声明

var height = document .compatMode =="CSS1Compat" ? document .documentElement.clientHeight : document .body.clientHeight;

而且我测试一下,这个属性在所有浏览器里面都能用,返回值与IE完全一样,实际上它的返回值应该是由!doctype声明决定而不是渲染模式当在非IE浏览器中使用的时候