JS 中如何判断出 各个IE浏览器的版本

JavaScript025

JS 中如何判断出 各个IE浏览器的版本,第1张

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

用js的Navigator对象

<div id="example"></div>

<script>

txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>"

txt+= "<p>Browser Name: " + navigator.appName + "</p>"

txt+= "<p>Browser Version: " + navigator.appVersion + "</p>"

txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>"

txt+= "<p>Platform: " + navigator.platform + "</p>"

txt+= "<p>User-agent header: " + navigator.userAgent + "</p>"

txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>"

document.getElementById("example").innerHTML=txt

</script>

可以查看浏览器版本信息

来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:

1.navigator 数据可被浏览器使用者更改

2.浏览器无法报告晚于浏览器发布的新操作系统

参考 w3school

用window.navigator.userAgent,例如Chrome的UA是

Mozilla/5.0 (Windows NT 6.1Win64x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36

判断里面是否包含Chrome这个字符串就能知道这个是Chrome浏览器。其他浏览器一样。