某些情况下,我们需要获取浏览器类型及版本,来做些polyfill之类的。
寻找了一些解决方案,觉得下面这个写法相对完善一些。备忘下。
function IEVersion() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
return fIEVersion;
} else if(isEdge) {
return 'edge';//edge
} else if(isIE11) {
return 11; //IE11
}else{
return -1;//不是ie浏览器
}
}
参考文章 :
-
js获取浏览器内核和版本
可以给出浏览器内核类型,及对应版本。但对IE11返回的是undefined,IEedge会直接返回内核Chrome。 -
怎么在html页面和js里判断是否是IE浏览器
单纯判断IE浏览器的版本号。从IE6-IEedge,都能完美获取。本篇文章直接引用的代码片段。 -
JS-判断当前浏览器是否为IE
对参考文章2的一个复制。此处备注上,因为我是因为这篇文章引到文章2的。













网友评论