javascript浏览器用户代理检测脚本实现方法
以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。
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 }; //平台、设备和操作系统 varsystem={ win:false, mac:false, x11:false, //移动设备 iphone:false, ipod:false, ipad:false, ios:false, android:false, nokiaN:false, winMobile:false, //游戏系统 wii:false, ps:false }; //检测呈现引擎和浏览器 varua=navigator.userAgent; if(window.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); //确定是Chroeme还是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); } //检测浏览器 browser.ie=engine.ie; browser.opera=engine.opera; //检测平台 varp=navigator.platform; system.win=p.indexOf("Win")==0; system.mac=p.indexOf("Mac")==0; system.x11=(p=="x11")||(p.indexOf("Linux")==0); //检测windows操作系统 if(system.win){ if(/win(?:dows)?([^do]{2})\s?(\d+\.\d+)?/.test(ua)){ if(RegExp["$1"]=="NT"){ switch(RegExp["$2"]){ case"5.0": system.win="2000"; break; case"5.1": system.win="XP"; break; case"6.0": system.win="Vista"; break; case"6.1": system.win="7"; break; default: system.win="NT"; break; } } elseif(RegExp["$1"]=="9x"){ system.win="ME"; } else{ system.win=RegExp["$1"]; } } } //移动设备 system.iphone=ua.indexOf("iPhone")>-1; system.ipod=ua.indexOf("iPod")>-1; system.ipad=ua.indexOf("iPad")>-1; system.nokiaN=ua.indexOf("NokiaN")>-1; //windowsmobile if(system.win=="CE"){ system.winMobile=system.win; } elseif(system.win=="Ph"){ if(/WindowsPhoneOS(\d+.\d+)/.test(ua)){ system.win="Phone"; system.winMobile=parseFloat(RegExp["$1"]); } } //检测IOS版本 if(system.mac&&ua.indexOf("Mobile")>-1){ if(/CPU(?:Phone)?OS(\d+_\d+)/.test(ua)){ system.ios=parseFloat(RegExp.$1.replace("_",".")); } else{ system.ios=2; //不能真正检测出来,所以只能猜测 } } //检测Android版本 if(/Android(\d+\.\d+)/.test(ua)){ system.android=parseFloat(RegExp.$1); } //游戏系统 system.wii=ua.indexOf("Wii")>-1; system.ps=/playstation/i.test(ua); //返回这些对象 return{ engine:engine, browser:browser, system:system }; //console.log(engine); //console.log(browser); //console.log(system); }();
以上这篇javascript浏览器用户代理检测脚本实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。