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,
win_ver:null,
max: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);
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(engine.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.max=p.indexOf("Max")==0;
system.wii=(p=="X11")||(p.indexOf("Linux")==0);
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_ver="2000";
break;
case "5.1":
system.win_ver="XP";
break;
case "6.0":
system.win_ver="Vista";
break;
case "6.1":
system.win_ver="7";
break;
default:
system.win_ver="NT";
break;
}
}else if(RegExp["$1"]=="9x"){
system.win_ver="ME";
}else {
system.win_ver=RegExp["$1"];
}
}
}
return {
engine:engine,
browser:browser,
system:system
};
}();
分享到:
相关推荐
以下是完整的用户代理字符串检测脚本,包括检测呈现引擎、平台、Windows操作系统、移动设备和游戏系统。 var client = function(){ // 呈现引擎 var engine = { ie: 0, gecko: 0, webkit: 0, khtml: 0, ...
我们可以利用`navigator.userAgent`属性来获取浏览器发送到服务器的用户代理字符串(User-Agent string)。这个字符串包含了浏览器的名称、版本号以及操作系统等信息。 例如,对于一个典型的User-Agent字符串,如:...
1. **用户代理字符串组成**:用户代理字符串通常包括浏览器名称、版本号、操作系统的名称和版本、设备信息(如移动设备或桌面设备)、渲染引擎等。例如,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/...
脚本通过检测用户代理字符串来识别浏览器。用户代理字符串能够检测出浏览器所用的呈现引擎及所在的平台,包括移动设备和游戏系统。但是,在检测用户端时,仍应先考虑使用能力检测和怪癖检测。
Detector是一个开源的PHP类库,用于检测用户的浏览器环境。它可以获得浏览器的使用情况和浏览器的HTML5 CSS3功能、并分析是否是...该库对每个浏览器用户都使用单一的用户代理字符串来自动适应新浏览器、版本和设备。
2. 特性检测(Feature Detection):这种方法比检测用户代理更可靠,它通过检查浏览器是否支持特定的API或特性来判断浏览器的能力。例如,Modernizr库就是一种流行的特性检测工具。 3. 浏览器嗅探(Browser ...
1. **浏览器类型**:JavaScript可以通过`navigator.userAgent`属性获取到用户代理字符串,这个字符串包含了关于浏览器和操作系统的信息。通过正则表达式匹配`userAgent`,可以判断浏览器是Chrome、Firefox、Safari、...
1. **兼容性和准确性问题**:由于浏览器厂商可能会修改其用户代理字符串,或者采用新的技术特性,导致上述方法不再有效。 2. **隐私保护**:现代浏览器越来越重视用户隐私,可能会限制或改变`navigator.userAgent`的...
检测浏览器 使用用户代理进行浏览器检测。 StatCounter于2017年10月在全球最受欢迎的浏览器上进行了测试。 值得重申:使用用户代理嗅探很少是一个好主意。 您几乎总能找到一种更好,更广泛兼容的方法来解决您的问题...
虽然**用户代理检测**并不是最推荐的方法,但在某些情况下可能仍然有用。这种方法是通过分析`navigator.userAgent`字符串来判断浏览器类型和版本。 例如,检测Chrome浏览器是否支持ES6的新特性: ```javascript ...
客户端检测,可以检测浏览器内核,浏览器类型,移动端类型以及游戏设备
- `userAgent`: 是一个字符串,包含了浏览器发送给服务器的用户代理头,包含浏览器类型、版本和操作系统信息。 - `platform`: 提供了浏览器所在的操作系统或硬件平台信息。 这些属性可以帮助开发者了解用户环境,...
通过深入剖析浏览器检测的原理,包括浏览器指纹识别和行为分析等技术,指南提供了多种有效的规避策略,如使用无头浏览器、模拟用户行为、设置用户代理以及采用undetected_chromedriver库等。这些实战技巧将帮助...
能力检测 在编写代码之前先检测特定浏览器的能力。例如,脚本在调用某个函数之前,可能要先检测该函数首付...用户代理检测 通过检测用户代理字符串来识别浏览器。用户代理字符串中包含大量与浏览器有关的信息,包括浏览
浏览器自动化过检测是一种在爬虫或自动化脚本执行过程中避免被目标网站识别的技术。这个项目主要针对的是如何在Python环境中,利用JavaScript算法来规避浏览器的自动化检测,从而提高爬虫的生存能力。以下是对这个...
- `navigator.userAgent`: 返回更详细的用户代理字符串,通常包含浏览器和操作系统信息。 ##### 2.2 浏览器名称与版本判断 根据提供的代码片段,我们可以看到作者主要通过`navigator.appName`和`navigator....
通常,这可以通过检查`navigator`对象来实现,该对象提供了关于用户浏览器的大量信息,包括`userAgent`属性,它包含了浏览器发送到服务器的用户代理头部信息,包含了浏览器的名称、版本以及操作系统等详细信息。...
用户代理检测内容插件 职能 该系统插件检测您网站访问者的用户代理,并可用于 Joomla 文章中以相应地显示内容。 可能的内容测试: {ifdesktop} 这仅显示浏览器是否为桌面 {/ifdesktop} {!ifdesktop} 这显示在任何...