js识别不同浏览器基于userAgent做判断
检测浏览器,注意浏览器判断顺序,主要是基于userAgent做判断。
//检测浏览器 varclient=function(){ varengine={ ie:0, gecko:0, webkit:0, khtml:0, opera:0, ver:null }; varbrowser={ //浏览器 ie:0, firefox:0, safari:0, konq:0, opera:0, chrome:0, ver:null }; varua=navigator.userAgent; //浏览器检测有顺序 if(window.opera){//opera伪装,所以优先检测 engine.ver=browser.ver=window.opera.version(); engine.opera=browser.opera=parseFloat(engine.ver); }elseif(/AppleWebKit\/(\S+)/.test(ua)){ engine.ver=RegExp["$1"]; engine.webkit=parseFloat(engine.ver); //确定是Chrome还是Safari if(/Chrome\/(\S+)/.test(ua)){ browser.ver=RegExp["$1"]; browser.chrome=parseFloat(browser.ver); }elseif(/Version\/(\S+)/.test(ua)){ browser.ver=RegExp["$1"]; browser.safari=parseFloat(browser.ver); }else{ //近似地确定版本号 varsafariVersion=1; if(engine.webkit<100){ safariVersion=1; }elseif(engine.webkit<312){ safariVersion=1.2; }elseif(engine.webkit<412){ safariVersion=1.3; }else{ safariVersion=2; } browser.safari=browser.ver=safariVersion; } }elseif(/KHTML\/(\S+)/.test(ua)||/Konqueror\/([^;]+)/.test(ua)){ engine.ver=browser.ver=RegExp["$1"]; engine.khtml=browser.konq=parseFloat(engine.ver); }elseif(/rv:([^\)]+)\)Gecko\/\d{8}/.test(ua)){ engine.ver=RegExp["$1"]; engine.gecko=parseFloat(engine.ver); //确定是不是Firefox if(/Firefox\/(\S+)/.test(ua)){ browser.ver=RegExp["$1"]; browser.firefox=parseFloat(browser.ver); } }elseif(/MSIE([^;]+)/.test(ua)){ engine.ver=browser.ver=RegExp["$1"]; engine.ie=browser.ie=parseFloat(engine.ver); } return{ engine:engine, browser:browser }; }(); //调用 if(client.engine.webkit){//ifit'sWebKit if(client.browser.chrome){ //执行针对Chrome的代码 }elseif(client.browser.safari){ //执行针对Safari的代码 } }elseif(client.engine.gecko){ if(client.browser.firefox){ //执行针对Firefox的代码 }else{ //执行针对其他Gecko浏览器的代码 } }