您好,欢迎访问一九零五行业门户网

js识别不同浏览器基于userAgent做判断_javascript技巧

检测浏览器,注意浏览器判断顺序,主要是基于useragent做判断。
//检测浏览器var client = function(){var engine = {ie:0,gecko:0,webkit:0,khtml:0,opera:0,ver:null};var browser = {//浏览器ie: 0,firefox: 0,safari: 0,konq: 0,opera: 0,chrome: 0,ver:null};var ua = navigator.useragent;//浏览器检测有顺序if(window.opera){//opera伪装,所以优先检测engine.ver = browser.ver = window.opera.version();engine.opera = browser.opera = parsefloat(engine.ver);} else if(/applewebkit\/(\s+)/.test(ua)){engine.ver = regexp[$1];engine.webkit = parsefloat(engine.ver);//确定是 chrome 还是 safariif (/chrome\/(\s+)/.test(ua)){browser.ver = regexp[$1];browser.chrome = parsefloat(browser.ver);} else if (/version\/(\s+)/.test(ua)){browser.ver = regexp[$1];browser.safari = parsefloat(browser.ver);} else {//近似地确定版本号var safariversion = 1;if (engine.webkit < 100){safariversion = 1;} else if (engine.webkit < 312){safariversion = 1.2;} else if (engine.webkit < 412){safariversion = 1.3;} else {safariversion = 2;}browser.safari = browser.ver = safariversion;}}else if (/khtml\/(\s+)/.test(ua) || /konqueror\/([^;]+)/.test(ua)){engine.ver = browser.ver = regexp[$1];engine.khtml = browser.konq = parsefloat(engine.ver);}else if (/rv:([^\)]+)\) gecko\/\d{8}/.test(ua)){engine.ver = regexp[$1];engine.gecko = parsefloat(engine.ver);//确定是不是 firefoxif (/firefox\/(\s+)/.test(ua)){browser.ver = regexp[$1];browser.firefox = parsefloat(browser.ver);}}else if (/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) { //if it's webkit if (client.browser.chrome){ //执行针对 chrome 的代码 } else if (client.browser.safari){ //执行针对 safari 的代码 } } else if (client.engine.gecko){ if (client.browser.firefox){ //执行针对 firefox 的代码 } else { //执行针对其他 gecko 浏览器的代码 } }
其它类似信息

推荐信息