//实现函数如下所示
function getBrowser(n) {
var ua = navigator.userAgent.toLowerCase(),
s,
name = '',
ver = 0;
//探测浏览器
(s = ua.match(/msie ([\d.]+)/)) ? _set("ie", _toFixedVersion(s[1])) :
(s = ua.match(/firefox\/([\d.]+)/)) ? _set("firefox", _toFixedVersion(s[1])) :
(s = ua.match(/chrome\/([\d.]+)/)) ? _set("chrome", _toFixedVersion(s[1])) :
(s = ua.match(/opera.([\d.]+)/)) ? _set("opera", _toFixedVersion(s[1])) :
(s = ua.match(/version\/([\d.]+).*safari/)) ? _set("safari", _toFixedVersion(s[1])) : 0;
if (name != 'ie') { //ie的特殊判断逻辑
var ieFlag = isIE();
if (ieFlag) {
_set('ie', IEVersion());
}
}
/**
* 解析浏览器版本号
*/
function _toFixedVersion(ver, floatLength) {
ver = ('' + ver).replace(/_/g, '.');
floatLength = floatLength || 1;
ver = String(ver).split('.');
ver = ver[0] + '.' + (ver[1] || '0');
ver = Number(ver).toFixed(floatLength);
return ver;
};
/**
* 处理浏览器名和版本
*/
function _set(bname, bver) {
name = bname;
ver = bver;
};
/**
* IE 需要特殊逻辑判断
*/
function isIE() {
if (!!window.ActiveXObject || "ActiveXObject" in window) {
return true;
} else {
return false;
}
};
/**
* IE 需要处理版本
*/
function IEVersion() {
var rv = -1;
if (navigator.appName == 'Microsoft Internet Explorer') {
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
rv = parseFloat(RegExp.$1);
}
} else if (navigator.appName == 'Netscape') {
var ua = navigator.userAgent;
var re = new RegExp("Trident/.*rv:([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null) {
rv = parseFloat(RegExp.$1);
}
}
return rv;
};
if(ua.indexOf('edge')>-1){
ours.browser.edge = ua.substring(ua.indexOf('edge')+5);
ours.browser.isEdge = true;
}
return (n == 'n' ? name : (n == 'v' ? ver : name + ver));
}