JS笔记:检测客户端(引擎、浏览器、平台、操作系统)
生活随笔
收集整理的這篇文章主要介紹了
JS笔记:检测客户端(引擎、浏览器、平台、操作系统)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
來源:http://blog.yovou.com/testing-the-client/
?
首先需要取得用戶代理字符串
如chrome:mozilla/5.0 (windows; u; windows nt 5.1; en-us) applewebkit/534.7 (khtml, like gecko) chrome/7.0.517.44 safari/534.7
| //取得用戶代理字符串 并全部小寫。 var ua = navigator.userAgent.toLowerCase(); document.write(ua); |
1、識別呈現引擎。
引擎主要包含四種:IE、Gecko、WebKit和Opera。
2、識別瀏覽器。
主流瀏覽器包含四種:IE、Chrome、Firefox、Opera。
3、識別平臺。
主流平臺包含三類:Windows、Mac、Unix。
4、識別Windows操作系統。
Windows操作系統包含:Windows 98、Window NT、Window XP、Window Vista、Windows 7…
5、識別移動設備。
主流的移動設備包含三類:iPhone、iPod、Anroid、Nokia。
6、識別游戲系統。
主流的游戲系統包含兩類:Wii、PS3
網上發現的比較簡單的區分代碼:
| var ua = navigator.userAgent.toLowerCase(); var isStrict = document.compatMode == "CSS1Compat" isOpera = ua.indexOf("opera") > -1 isChrome = ua.indexOf("chrome") > -1 isSafari = !isChrome && (/webkit|khtml/).test(ua) isSafari3 = isSafari && ua.indexOf('webkit/5') != -1 isIE = !isOpera && ua.indexOf("msie") > -1 isIE7 = !isOpera && ua.indexOf("msie 7") > -1 isIE8 = !isOpera && ua.indexOf("msie 8") > -1 isGecko = !isSafari && !isChrome && ua.indexOf("gecko") > -1 isGecko3 = isGecko && ua.indexOf("rv:1.9") > -1 isBorderBox = isIE && !isStrict isWin7 = ua.indexOf("nt 6.1") > -1 isVista = ua.indexOf("nt 6.0") > -1 isWin2003 = ua.indexOf("nt 5.2") > -1 isWinXp = ua.indexOf("nt 5.1") > -1 isWin2000 = ua.indexOf("nt 5.0") > -1 isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1) isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1) isAir = (ua.indexOf("adobeair") != -1) isLinux = (ua.indexOf("linux") != -1) var sys = ""; var broser = ""; if(isIE){ broser = "IE 6"; }else if(isIE7){ broser = "IE 7"; }else if(isIE8){ broser = "IE 8"; }else if(isOpera){ broser = "Opera"; }else if(isChrome){ broser = "Chrome"; }else if(isSafari){ broser = "Safari"; }else if(isSafari3){ broser = "Safari3"; }else{ broser = "Unknow"; } if(isWin7){ sys = "Windows 7"; }else if(isVista){ sys = "Vista"; }else if(isWinXp){ sys = "Windows xp"; }else if(isWin2003){ sys = "Windows 2003"; }else if(isWin2000){ sys = "Windows 2000"; }else if(isWindows){ sys = "Windows"; }else if(isMac){ sys = "Macintosh"; }else if(isAir){ sys = "Adobeair"; }else if(isLinux){ sys = "Linux"; }else{ sys = "Unknow"; } document.write(ua); alert(sys + ":" + broser); |
?
?
?
比較全面的區分代碼:
| var client = function(){ //呈現引擎 var engine = {ie : 0,gecko : 0,webkit : 0,khtml : 0,opera : 0,//完整的版本號ver : null };//瀏覽器 var browser = { //主要瀏覽器ie : 0,firefox : 0,konq : 0,opera : 0,chrome : 0,safari : 0,//具體的版本號ver : null };//平臺、設備和操作系統 var system ={win : false,mac : false,xll : false,//移動設備iphone : false,ipod : false,nokiaN : false,winMobile : false,macMobile : false,//游戲設備wii : false,ps : false }; //檢測呈現引擎和瀏覽器 var ua = navigator.userAgent; if (window.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) || /Konquersor//([^;]+)/.test(ua)){engine.ver = browser.ver = RegExp["$1"];engine.khtml = browser.kong = paresFloat(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 = pareseFloat(browser.ver);} } else if(/MSIE([^;]+)/.test(ua)){browser.ver = RegExp["$1"];browser.firefox = parseFloat(browser.ver); } //檢測瀏覽器 browser.ie = engine.ie; browser.opera = engine.opera; //檢測平臺 var p = 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(?:doms)?([^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;default :system.win = "NT";break; }} else if (RegExp["$1"]){system.win = "ME";} else {system.win = RegExp["$1"];}} } //移動設備 system.iphone = ua.indexOf("iPhone") > -1; system.ipod = ua.indexOf("iPod") > -1; system.nokiaN = ua.indexOf("NokiaN") > -1; system.winMobile = (system.win == "CE"); system.macMobile = (system.iphone || system.ipod); //游戲系統 system.wii = ua.indexOf("Wii") > -1; system.ps = /playstation/i.test(ua); //返回這些對象 return {engine: engine,browser: browser,system: system }; }() |
總結
以上是生活随笔為你收集整理的JS笔记:检测客户端(引擎、浏览器、平台、操作系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打飞的不是梦 迪拜首个空中出租车垂直机场
- 下一篇: 快手极速版草稿箱作品咋样分享给别人