JS获取浏览器类型和版本号

JS获取浏览器类型和版本号,增加了IE11的判断。

2015/7/5更新: 简化代码逻辑

var zbrowser = {}
var ua = navigator.userAgent.toLowerCase();

var browsers = ["msie", "firefox", "chrome", "opera", "safari", "iphone", "ipad", "android", "iemobile", "operamini"];
var len = browsers.length;

var isGreaterThanIE10 = !(/msie/.test(ua)) && ua.match(/trident/);
if (isGreaterThanIE10) {
for (var i = 0; i < len; i++) {
zbrowser[browsers[i]] = false;
}
zbrowser.msie = true;
zbrowser.mobile = false;
} else {
for (var j = 0; j < len; j++) {
zbrowser[browsers[j]] = new RegExp(browsers[j]).test(ua);
}
zbrowser.safari = !zbrowser.chrome && /safari/.test(ua);
zbrowser.mobile = zbrowser.iphone || zbrowser.ipad || zbrowser.android || zbrowser.iemobile || zbrowser.operamini;
}
for (var n = 0; n < len; n++) {
if (zbrowser[browsers[i]] === true) {
zbrowser.browser = browsers[i];
break;
}
}


var bv = "unknown";
if (isGreaterThanIE10) {
var re = new RegExp("trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
bv = parseFloat(RegExp.$1);
}
} else {
var m = ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
if (m) {
var v = ua.match(/version\/([\.\d]+)/i);
if (v != null) {
bv = v[1];
} else {
bv = m[2];
}
}
}

zbrowser.version = bv;
 

 

你可能感兴趣的:(浏览器类型)