当前位置: 移动技术网 > IT编程>开发语言>其他编程 > 判断所使用的浏览器不仅仅是电脑浏览器代码整理

判断所使用的浏览器不仅仅是电脑浏览器代码整理

2017年12月08日  | 移动技术网IT编程  | 我要评论
判断不仅包括电脑浏览器,还包括安卓、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
}
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网