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

所属分类: 网络编程 / 相关技巧 阅读数: 883
收藏 0 赞 0 分享
判断不仅包括电脑浏览器,还包括安卓、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
}
}
更多精彩内容其他人还在看

程序员编程从初级到中级的10个秘诀

在一封与TechRepublic会员交流的邮件当中,他提到了面向程序员的博客、文章及杂志分成两类:面向初学者类(“hello world”这种类型的教程)以及面向专家类(MSDN杂志)。
收藏 0 赞 0 分享

关于换行和回车的图文小结

不知道大家用这么多年的电脑,写了这么多的程序,对换行和回车有没有一个认识
收藏 0 赞 0 分享

回车和换行有什么区别?我们平时按下的Enter键是回车还是换行

如果用过机械打字机,就知道回车和换行的区别了。换行就是把滚筒卷一格,不改变水平位置。回车就是把水平位置复位,不卷动滚筒
收藏 0 赞 0 分享

网络编程之get与post的区别与联系

这里来说说get与post的区别与联系,对这方面不懂的鹏哟可以参考下。
收藏 0 赞 0 分享

Web开发人员常用速查手册 英文集合推荐

不管你是多么优秀的程序员,你都不可能记住一切。在你编写程序的过程中碰到问题需要查阅手册的时候,若有现成的手册可参考则可以为你节省很多时间。
收藏 0 赞 0 分享

vs快捷键 用好Ctrl+Enter与Ctrl+Shift+Enter组合键让你的编辑代码速度快了很多

使用Ctrl+Enter组合键在上方插入一行,使用Ctrl+Shift+Enter组合键在下方插入一行
收藏 0 赞 0 分享

对Web开发人员有用的8个网站小结

本文是由比利时的Web开发人员Jean-Baptiste Jung分享的,Jung还在《Web开发/设计人员应当知道的15个网站》这篇文章中推荐了15个相关网站
收藏 0 赞 0 分享

Web开发/设计人员应当知道的15个网站

建个好网站绝非易事,工欲善其事必先利其器。本文编译了15个极其有用的网站,任何一位网站开发者或设计人员都应该收藏起来
收藏 0 赞 0 分享

Application,Session,Cookies对象应用介绍

Application,Session,Cookies对象比较,对于客户端保存登录信息的朋友可以参考下。
收藏 0 赞 0 分享

设计高可用和高负载的网站系统的几个注意事项

随着网站的运营,用户访问量和数据存储量会随着时间发生几何级变化,很快整个系统不堪重负,频繁出现问题。
收藏 0 赞 0 分享
查看更多