最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript实现浏览器用户代理检测脚本的方法详解

来源:动视网 责编:小采 时间:2020-11-27 20:11:33
文档

JavaScript实现浏览器用户代理检测脚本的方法详解

JavaScript实现浏览器用户代理检测脚本的方法详解:以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。var client = function(){ // 呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, opera: 0, // 完整的版
推荐度:
导读JavaScript实现浏览器用户代理检测脚本的方法详解:以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。var client = function(){ // 呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, opera: 0, // 完整的版


以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。

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 system = { 
 win: false, 
 mac: false, 
 x11: false, 
 
 // 移动设备 
 iphone: false, 
 ipod: false, 
 ipad: false, 
 ios: false, 
 android: false, 
 nokiaN: false, 
 winMobile: 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); 
 
 // 确定是Chroeme还是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) || /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); 
 
 // 确定是不是Firefox 
 if (/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); 
 } 
 
 // 检测浏览器 
 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(?: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; 
 } 
 } 
 else if(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; 
 
 // windows 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 (?: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实现浏览器用户代理检测脚本的方法详解

JavaScript实现浏览器用户代理检测脚本的方法详解:以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。var client = function(){ // 呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, opera: 0, // 完整的版
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top