欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-28 18:30:52
判断不仅包括电脑浏览器,还包括安卓、ios系统的手机以及平板电脑,游戏系统 复制代码 代码如下: var client = function(){ //呈现引擎 var e...
判断不仅包括电脑浏览器,还包括安卓、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
}
}