分類  >  Web前端 >

用compatMode稽查當前渲染模式

tags:    時間:2013-12-10 15:03:20
用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瀏覽器中使用的時候

推薦閱讀文章

Bookmark the permalink ,來源:互聯網