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浏览器。其他浏览器一样。