對(duì)瀏覽器模式的判斷也是開發(fā)中必不可少的一環(huán),隨著IE6開始區(qū)分標(biāo)準(zhǔn)模式和混雜模式,確定瀏覽器處于何種模式的需求也就應(yīng)運(yùn)而生。IE為 document對(duì)象添加了一個(gè)名為compatMode的屬性,這個(gè)屬性的唯一使命就是標(biāo)識(shí)瀏覽器處于什么模式。如下面的例子所示,如果是標(biāo)準(zhǔn)模式,則document.compatMode的值等于”CSSICompat ,如 果是混雜模式,則document.compatMode的值等于”BackCompat”。
if ( document.compatMode==”CSSICompat”){
alert(”Standards mode”);
} else{
alert(”Quirks mode”);
}
后來(lái),F(xiàn)irefox、Opera和Chrome都實(shí)現(xiàn)了這個(gè)屬性。Safari從3.1版開始也實(shí)現(xiàn)了document.compatMode。
IE8又為document對(duì)象引入了一個(gè)名為documentMode的新屬性,其用法如下面的例子所示。
這是因?yàn)镮E8有3種不同的呈現(xiàn)模式,而引入這個(gè)屬性正是為了分辨這些模式。這個(gè)屬性的值如果是 5,則表示混雜模式(即IE5模式);如果是7,則表示IE7仿真模式;如果是8,則表示IE8標(biāo)準(zhǔn)模式。
if ( document.documentMode>7){
alert(”IE 8+Standards Mode”);
}
關(guān)于在將來(lái)的新版瀏覽器中,這個(gè)屬性的值會(huì)如何變化,微軟并沒有給出太多說(shuō)明。因此,如果你想測(cè)試的是IE8標(biāo)準(zhǔn)模式,那么最好測(cè)試這個(gè)屬性的值是不是大干7,而不是直接測(cè)試它是不是等
于8,以防將來(lái)這個(gè)屬性的值可能會(huì)發(fā)生變化。如下所示應(yīng)用實(shí)例:
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;
}
本文僅限內(nèi)部技術(shù)人員學(xué)習(xí)交流,不得作于其他商業(yè)用途.希望此文對(duì)廣技人員有所幫助。原創(chuàng)文章出自:南昌網(wǎng)站建設(shè)公司-百恒網(wǎng)絡(luò)http://www.gimmickmag.com/如轉(zhuǎn)載請(qǐng)注明出處!