对于document.compatMode文档模式,我想很多朋友可能都和我一样很少接触。今天在ymPrompt中看到有这么一条语句
//根据html Doctype获取html根节点,以兼容非xhtml的页面
var rootEl = d.compatMode == 'CSS1Compat' ? d.documentElement : db; //根元素
仔细找了下相关资料,收集整理如下:
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的渲染模式了。