javascript浏览器用户代理检测脚本怎么写
发表于:2024-09-28 作者:千家信息网编辑
千家信息网最后更新 2024年09月28日,本篇内容主要讲解"javascript浏览器用户代理检测脚本怎么写",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"javascript浏览器用户代理检测脚本
千家信息网最后更新 2024年09月28日javascript浏览器用户代理检测脚本怎么写
本篇内容主要讲解"javascript浏览器用户代理检测脚本怎么写",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"javascript浏览器用户代理检测脚本怎么写"吧!
以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、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浏览器用户代理检测脚本怎么写"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
检测
浏览器
浏览
版本
系统
用户
脚本
代理
引擎
游戏系统
设备
操作系统
内容
平台
学习
移动
实用
更深
兴趣
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
部队手机网络安全黑板报图片
湖北云虚拟主机云服务器
开机可以进入网络安全模式
万方数据库和中国知网的特点
齐向东网络安全
matlab数据库后缀名
吉林省龙程网络技术
青少年网络安全培养需要做到
中国石化网络安全宣传周
数据中心网络安全产品
方舟服务器传送丢物品
一个人的网络技术
焦作软件开发电话
学编程还是软件开发好
软件开发 8g内存够用吗
软件开发网页版还是客户端好
淮安西宝网络技术工作室地址
浙江5g专业服务器机柜
备用dns服务器怎么查询
显示当前数据库的所有数据表
软件开发遇到的技术难题
网络技术专员工作环境
四叶草网络安全有限公司加班情况
网络安全发现运营商
课后答案软件开发
TCGA数据库基础
为什么选择小众的原生数据库
寻仙以前的紫岚山在哪个服务器
2u服务器硬盘集中供电
接口压力测试会影响服务器吗