对浏览器模式的判断也是开发中必不可少的一环,随着IE6开始区分标准模式和混杂模式,确定浏览器处于何种模式的需求也就应运而生。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,以防将来这个属性的值可能会发生变化。如下所示应用实例:
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;
}
本文仅限内部技术人员学习交流,不得作于其他商业用途.希望此文对广技人员有所帮助。原创文章出自:南昌网站建设公司-百恒网络http://www.jxbh.cn/如转载请注明出处!