js 浏览器及版本判断

461 阅读1分钟

1、IE浏览器

IE浏览器判断

!!window.ActiveXObject || "ActiveXObject" in window

IE11判断关键字 Trident + rv

"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; McAfee; rv:11.0) like Gecko"

IE11之前判断关键字 MSIE

"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)"

2、Chrome、Safari和Edge

Edge

"Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/17.17134"

Safari

"User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"

Chrome

"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Mobile Safari/537.36"

判断顺序 Edge > Chrome > Safari

3、代码

 function myBrowser() {
    var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    if (!!window.ActiveXObject || "ActiveXObject" in window) { //IE判断
        return 'IE' + getVersion(userAgent, 'IE');
    } else if(userAgent.indexOf("Opera") > -1){
        return 'Opera' + getVersion(userAgent, 'Opera');
    } else if(userAgent.indexOf("Edge") > -1){
        return 'Edge' + getVersion(userAgent, 'Edge');
    } else if(userAgent.indexOf("Chrome") > -1){
        return 'Chrome' + getVersion(userAgent, 'Chrome');
    } else if(userAgent.indexOf("Safari") > -1){
        return 'Safari' + getVersion(userAgent, 'Safari');
    } else if(userAgent.indexOf("Firefox") > -1){
        return 'Firefox'+ getVersion(userAgent, 'Firefox');
    }
}
function getVersion(userAgent, browser) {//浏览器版本判断
    if (browser == 'IE') {//IE版本
        return userAgent.match(/MSIE ([\d.]+)/) != null ? userAgent.match(/MSIE ([\d.]+)/)[1] : userAgent.match(/rv:([\d.]+)/)[1];
    } else if(browser == 'Safari'){//Safari版本
        return userAgent.match(/Version\/([\d.]+)/)[1];
    } else {
        return userAgent.match(new RegExp(browser + '/([\\d.]+)'))[1];
    }
}