Heim  >  Artikel  >  Web-Frontend  >  Anmerkungen zur JavaScript-Studie: Erkennen Sie den Clienttyp (Engine, Browser, Plattform, Betriebssystem, mobiles Gerät)_Javascript-Kenntnisse

Anmerkungen zur JavaScript-Studie: Erkennen Sie den Clienttyp (Engine, Browser, Plattform, Betriebssystem, mobiles Gerät)_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 15:28:081148Durchsuche
//取得用户代理字符串 并全部小写。
var ua = navigator.userAgent.toLowerCase();
document.write(ua);

在上篇文章给大家介绍了基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统

,感兴趣的朋友可以点击全文了解详情。

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。

网上发现的比较简单的区分代码:

JavaScript

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);

比较全面的区分代码:

JavaScript

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还是Safari
 if (/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);
 //确定是不是Firefox
 if (/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(&#63;:doms)&#63;([^do]{2})\s&#63;(\d+\.\d+)&#63;/.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
};
}()

以上所述是小编给大家介绍的JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)的全部叙述,希望大家喜欢。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn