检测访问网页的浏览器呈现引擎、平台、windows操作系统、移动设备和游戏系统
/** * author: laixiangran. * created by laixiangran on 2015/12/02. * 检测访问网页的浏览器呈现引擎、平台、windows操作系统、移动设备和游戏系统 * ******************************************************************** * 各版本浏览器在windows10.0下的用户代理字符串: * google chrome 45.0.2454.85 —— mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/45.0.2454.85 safari/537.36 * opera 31.0.1889.174 —— mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/44.0.2403.155 safari/537.36 opr/31.0.1889.174 * microsoft edge —— mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/42.0.2311.135 safari/537.36 edge/12.10240 * firefox 40.0.3 —— mozilla/5.0 (windows nt 10.0; wow64; rv:40.0) gecko/20100101 firefox/40.0 * internet explorer 11+ —— mozilla/5.0 (windows nt 10.0; wow64; trident/7.0; .net4.0c; .net4.0e; .net clr 2.0.50727; .net clr 3.0.30729; .net clr 3.5.30729; rv:11.0) like gecko * internet explorer 10- —— mozilla/5.0 (compatible; msie x.0; windows nt 10.0; wow64; trident/8.0; .net4.0c; .net4.0e; .net clr 2.0.50727; .net clr 3.0.30729; .net clr 3.5.30729) */(function(){ window.iclient = {}; //呈现引擎信息 var engine = { //呈现引擎 ie: 0, gecko: 0, webkit: 0, khtml: 0, opera:0, //具体版本号 ver: null }; var browser = { //浏览器 ie: 0, edge: 0, firefox: 0, safari: 0, konq: 0, opera: 0, chrome: 0, //具体版本号 ver: null }; //平台、设备和操作系统 var system = { win: false, mac: false, unix: false, //移动设备 iphone: false, ipod: false, ipad: false, ios: false, android: false, nokian: false, winmobile: false, //游戏系统 wii: false, //任天堂 ps: false //playstation3 }; //获取浏览器的用户代理字符串 var ua = window.navigator.useragent; //检测呈现引擎和浏览器 //检测presto内核的opera浏览器 if(window.opera){ engine.ver = browser.ver = window.opera.version(); engine.opera = browser.opera = parsefloat(engine.ver); } //检测webkit 用代理字符串中的applewebkit进行检测 else if(/applewebkit\/(\s+)/.test(ua)){ engine.ver = regexp[$1]; engine.webkit = parsefloat(engine.ver); //确定microsoft edge if(/edge\/(\s+)/.test(ua)){ browser.ver = regexp[$1]; browser.edge = parsefloat(browser.ver); } //确定webkit内核opera else if(/opr\/(\s+)/.test(ua)){ browser.ver = regexp[$1]; browser.opera = parsefloat(browser.ver); } //确定chrome else if(/chrome\/(\s+)/.test(ua)){ browser.ver = regexp[$1]; browser.chrome = parsefloat(browser.ver); } //确定safari else if(/version\/(\s+)/.test(ua)){ browser.ver = regexp[$1]; browser.safari = parsefloat(browser.ver); }else{ //近似的确定版本号 var safariversion = 1; if(engine.webkit -1; system.nokian = ua.indexof(nokian) > -1; //window mobile if(system.win == ce){ system.winmobile = system.win; }else if(system.win == ph){ if(/windows phone os (\d+.\d+)/.test(ua)){ system.win = phone; system.winmobile = parsefloat(regexp[$1]); } } //检测ios版本 if(system.mac && ua.indexof(mobile) > -1){ if(/cpu (?:iphone )?os (\d+.\d+)/.test(ua)){ system.ios = parsefloat(regexp[$1].replace(_,.)); }else{ system.ios = 2; //不能真正检测出来,所以只能猜测 } } //检测安卓版本 if(/android (\d+.\d+)/.test(ua)){ system.android = parsefloat(regexp[$1]); } //检测游戏系统 system.wii = ua.indexof(wii) > -1; system.ps = /playstation/i.test(ua); window.iclient.engine = engine; window.iclient.browser = browser; window.iclient.system = system;})();
再给大家一个简单点的实例:判断windows、linux、android
判断操作系统