javascript检测IE6-8,chrome,safari,firefox,opera等主流浏览器类型
利用javascript检测浏览器的类别,网上也会有很多的代码,这里总结写了一下,主要检测主流的五款浏览器(IE,Chrome,Opera,Safari,Firefox)的类别,IE可以检测到IE6-IE9的本种版本,IE10没有检测过。
IE9浏览器比较特别,按F12进入控制台中,可以切换到IE7或IE8,用navigator.userAgent来判断检测不出用的是哪个核心,全部提示IE7,这里也作了下兼容处理。
代码如下:
Utils.broswer = function(){
//检测浏览器
var iUserAgent = navigator.userAgent;
var iAppVersion = parseFloat(navigator.appVersion);
var isOpera = iUserAgent.indexOf("Opera") > -1;
var isKHTML = iUserAgent.indexOf("KHTML") > -1 || iUserAgent.indexOf("Konqueror") > -1 || iUserAgent.indexOf("AppleWebKit") > -1;
if(isKHTML){
var isChrome = iUserAgent.indexOf("Chrome") > -1;
var isSafari = iUserAgent.indexOf("AppleWebKit") > -1 && !isChrome;
var isKonq = iUserAgent.indexOf("Konqueror") > -1;
}
var isIE = iUserAgent.indexOf("compatible") > -1 && iUserAgent.indexOf("MSIE") > -1 && !isOpera;
var isMoz = iUserAgent.indexOf("Gecko") > -1 && !isKHTML;
var isNS4 = !isOpera && !isMoz && !isKHTML && !isIE && (iUserAgent.indexOf("Mozilla") ==0) && (navigator.appName == "Netscape") && (fAppVersion >=4.0 && fAppVersion <= 5.0);
//此处为检测平台
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");
var isMac = (navigator.platform == "Mac68K") || (navigator.platform == "MacPPC") || (navigator.platform == "Macintosh");
var isUnix = (navigator.platform == "X11") && !isWin && !isMac;
if(isOpera){
return "opera";
} else if(isChrome) {
return "chrome";
} else if(isSafari){
return "safari";
} else if(isKonq){
return "konq";
} else if(isIE){
//此处没用userAgent来检测,主要是考虑IE9浏览器按F12可以切换到IE7,IE8;用userAgent会检测不出来
if (parseInt($.browser.version, 10) <= 6) {
return "IE6";
} else if (document.all && !document.querySelector) {
return "IE7";
} else if (document.all && document.querySelector && !document.addEventListener) {
return "IE8";
} else {
return "IE9+";
}
} else if(isMoz){
return "mozilla";
} else if(isNS4){
return "ns4";
}
}
调用很简单:
var 一个变量 browser = Utils.browser(); 根据返回值来判断浏览器类型就OK了