對於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的渲染模式了。