JS如何判断IE浏览器是否开启兼容性视图?

JavaScript014

JS如何判断IE浏览器是否开启兼容性视图?,第1张

<script language="javascript" type="text/javascript">

var version = navigator.appVersion

var start = version.indexOf("MSIE")

var temp = version.slice(start+5, start+6)

if(temp=="9"){

alert(9)

}else if(temp=="8"){

alert(8)

}else if(temp=="7"){

alert(7)

}else if(temp=="6"){

alert(6)

}else if(temp=="5"){

alert(5)

}

</script>

在IE8下,如果开启兼容性视图,返回值是7,否则返回8。

其实一般网站没问题很少有人会去懂兼容性按钮,可以在网站头部加

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

如果是高版本的浏览器自动会用IE7内核去渲染,就是所谓的兼容模式吧,狠多大型网站都可以看到这行代码,可以减小前端的工作量。

if ((navigator.userAgent.indexOf('MSIE') >= 0) &&(navigator.userAgent.indexOf('Opera') <0)){alert('你是使用IE')}else

if (navigator.userAgent.indexOf('Firefox') >= 0){alert('你是使用Firefox')}else

if (navigator.userAgent.indexOf('Opera') >= 0){alert('你是使用Opera')}else

{alert('你是使用其他的浏览器浏览网页!')}

IE6~IE10的浏览器特征明显,存在msie字符串,而IE11去掉了msie字符串,可以通过rv后面的版本号识别IE11,具体方法如下:

function IETester(userAgent){

    var UA =  userAgent || navigator.userAgent

    if(/msie/i.test(UA)){

        return UA.match(/msie (\d+\.\d+)/i)[1]

    }else if(~UA.toLowerCase().indexOf('trident') && ~UA.indexOf('rv')){

        return UA.match(/rv:(\d+\.\d+)/)[1]

    }

    return false

}

IETester()//不传参数返回当前IE版本,如果不是IE内核浏览器,返回false

IETester('Mozilla/5.0 (Windows NT 6.3 WOW64 Trident/7.0 rv:11.0) like Gecko')//传userAgent字符串,用来判断其他IE浏览器的版本,该示例返回11.0