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了