对于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浏览器中使用的时候