今天查資料時無意發現一個以前沒有註意到過的屬性:document.compatMode
經過一番資料的查詢後,了解到以下資訊:
我們都知道IE有兩種盒子模型,在不聲明 !DOCTYPE 時是混雜模式(Quirks Mode),在聲明了 !DOCTYPE 時與其他標準瀏覽器一致,是標準模式(Standards Mode)
document.compatMode 有兩個屬性值:
BackCompat ----- 表示標準規格模式關閉,即目前為混雜模式 (Quirks Mode),此時瀏覽器客戶區寬度為document.body.clientWidth
CSS1Compat ---- 表示標準規範模式開啟,即目前為標準模式(Standards Mode),此時瀏覽器客戶區寬度為 document.documentElement.clientWidth
#下面貼一份準確取得網頁客戶區的寬高、捲軸寬高、捲軸Left和Top 的代碼
1 if (document.compatMode == "BackCompat") { 2 cWidth = document.body.clientWidth; 3 cHeight = document.body.clientHeight; 4 sWidth = document.body.scrollWidth; 5 sHeight = document.body.scrollHeight; 6 sLeft = document.body.scrollLeft; 7 sTop = document.body.scrollTop; 8 } else { //document.compatMode == "CSS1Compat" 9 cWidth = document.documentElement.clientWidth;10 cHeight = document.documentElement.clientHeight;11 sWidth = document.documentElement.scrollWidth;12 sHeight = document.documentElement.scrollHeight;13 sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;14 sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;15 }
#
以上是js中的屬性:document.compatMode的詳細內容。更多資訊請關注PHP中文網其他相關文章!