判断所使用的浏览器不仅仅是电脑浏览器代码整理
时间:2023-12-13 10:13:21
判断不仅包括电脑浏览器,还包括安卓、ios系统的手机以及平板电脑,游戏系统
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,
max : false,
x11 : false,
//移动设备
iphone : false ,
ipod : false,
ipad : false,
ios : false,
android : false,
nokiaN : false,
winMoble : false,
//游戏系统
wii :false,
ps : false
};
var ua =navigator.userAgent;
//Opera 9以后出现了两种字符串代理的方式 一种方式就是将自身标识另外一个浏览器 另外一种方式就是标志自己为firefox或者IE
//在后面这种情况下 用户代理字符串实际上与其他浏览器返回的相同--既没有opera的字样,也不包含opera的版本信息
//因此判断浏览器先从opera开始
if(winddow.opera){
engine.ver = browser.ver = window.opera.version();
egine.opera = browser.opera = parseFloat(engine.ver);
//第二个检测WebKit 是因为WebKit的用户代理字Gecko"和"HTMKL"的字符串 所以如果首先检测他们都有错误的结论
}else if (/AppleWebKit\/(\S+)/.test(ua)){
engin.ver = RegExp["$1"];
engine.webkit = parseFloat(engine.ver);
//确定是chrome还是Safari
if(/Chrome\/(\S+)/.test(ua){
browser.ver = RegExp["$1"];
browser.chrome = parseFloat(brower.ver);
}else if(/Version\/(+\S)/.test(ua)){//safari 3.0后增加了Version属性
browser.ver = RegExp["$1"];
browser.safari = parseFloat(brower.ver);
}else{
var safariVersion = 1;
if(engine.webkit<100){
safariVersion = 1;
}else if(engine.ver<312){
safariVersion = 1.2;
}else if(engine.ver<412){
safariVersion = 1.3;
}else{
safariVersion = 2;
}
browser.safari = browser.ver = safariVersion;
}
}else if(/KHTML\/(\S+)/.test(ua)||/Konqueror\/([^;]+)/.test(ua)){//Linux下浏览器
engine.ver = browser.ver = RegExp["$1"];
engine.khtml = parseFloat(engine.ver);
}else if(/rv:([^\)]+\) Gocko\/\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;
if(system.win){
if(/Win(?:dow)?([^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";
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;
//win 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 (?:iPhone)?OS (\d+\_\d+)/.test(ua){
system.ios = parseFloat(RexExp.$1.replace("_","."));
}else {
system.ios = 2 ;//不能真正检查出来,所以猜测出来一个结果
}
}
//检查安卓版本
//
if(/Android (\d+/_\d+)/.test(ua)){
system.andriod = parseFloat(RegExp.$1);
}
//游戏系统
system.wii = us.indexOf("Wii")>-1;
system.ps = /playstation/i.test(ua);
//返回对象
return {
engine : engine,
browser : browser,
system : system
}
}
标签:浏览器,判断
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python 人工智能老照片修复算法学习
2022-10-31 03:37:18
![](https://img.aspxhome.com/file/2023/2/113172_0s.jpg)
动态加载iframe时get请求传递中文参数乱码解决方法
2024-05-02 17:28:25
Pytorch参数注册和nn.ModuleList nn.ModuleDict的问题
2021-02-10 23:43:06
网页图片延时加载的js代码
2024-04-22 13:22:41
golang gorm 结构体的表字段缺省值设置方式
2024-04-28 09:13:53
利用python计算时间差(返回天数)
2023-10-22 02:39:30
MySQL表类型 存储引擎 的选择
2024-01-22 08:12:51
删除数组中重复项(uniq)
2009-12-28 12:23:00
Jenkins配置maven项目之打包、部署、发布的全过程
2023-08-07 19:14:29
![](https://img.aspxhome.com/file/2023/1/61841_0s.jpg)
python实现半自动化发送微信信息
2023-07-16 09:15:38
js中apply和Math.max()函数的问题及区别介绍
2024-05-09 10:39:14
详解Go中gin框架如何实现带颜色日志
2024-05-21 10:19:11
![](https://img.aspxhome.com/file/2023/2/125072_0s.webp)
Python的Django框架中forms表单类的使用方法详解
2021-07-31 04:31:40
![](https://img.aspxhome.com/file/2023/6/103106_0s.jpg)
Python Django中间件,中间件函数,全局异常处理操作示例
2022-02-18 20:21:40
![](https://img.aspxhome.com/file/2023/8/135178_0s.png)
pyqt5利用pyqtDesigner实现登录界面
2023-09-04 15:19:36
另外一种斜体的导航条
2008-11-05 12:24:00
Git在Windows中安装与使用教程
2023-11-01 08:47:55
![](https://img.aspxhome.com/file/2023/5/67205_0s.png)
常用SQL语句词典
2008-08-03 17:19:00
python绘制双柱形图代码实例
2022-02-28 19:42:27
![](https://img.aspxhome.com/file/2023/4/97334_0s.png)
使用python socket分发大文件的实现方法
2022-05-23 10:45:40