對瀏覽器模式的判斷也是開發(fā)中必不可少的一環(huán),隨著IE6開始區(qū)分標準模式和混雜模式,確定瀏覽器處于何種模式的需求也就應運而生。IE為 document對象添加了一個名為compatMode的屬性,這個屬性的唯一使命就是標識瀏覽器處于什么模式。如下面的例子所示,如果是標準模式,則document.compatMode的值等于”CSSICompat ,如 果是混雜模式,則document.compatMode的值等于”BackCompat”。
if ( document.compatMode==”CSSICompat”){
alert(”Standards mode”);
} else{
alert(”Quirks mode”);
}
后來,Firefox、Opera和Chrome都實現了這個屬性。Safari從3.1版開始也實現了document.compatMode。
IE8又為document對象引入了一個名為documentMode的新屬性,其用法如下面的例子所示。
這是因為IE8有3種不同的呈現模式,而引入這個屬性正是為了分辨這些模式。這個屬性的值如果是 5,則表示混雜模式(即IE5模式);如果是7,則表示IE7仿真模式;如果是8,則表示IE8標準模式。
if ( document.documentMode>7){
alert(”IE 8+Standards Mode”);
}
關于在將來的新版瀏覽器中,這個屬性的值會如何變化,微軟并沒有給出太多說明。因此,如果你想測試的是IE8標準模式,那么最好測試這個屬性的值是不是大干7,而不是直接測試它是不是等
于8,以防將來這個屬性的值可能會發(fā)生變化。如下所示應用實例:
if (document.compatMode == "BackCompat") {
cWidth = document.body.clientWidth;
cHeight = document.body.clientHeight;
sWidth = document.body.scrollWidth;
sHeight = document.body.scrollHeight;
sLeft = document.body.scrollLeft;
sTop = document.body.scrollTop;
}
else { //document.compatMode == "CSS1Compat"
cWidth = document.documentElement.clientWidth;
cHeight = document.documentElement.clientHeight;
sWidth = document.documentElement.scrollWidth;
sHeight = document.documentElement.scrollHeight;
sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
}
本文僅限內部技術人員學習交流,不得作于其他商業(yè)用途.希望此文對廣技人員有所幫助。原創(chuàng)文章出自:南昌網站建設公司-百恒網絡http://www.myforexfactory.net/如轉載請注明出處!