javascript实现获取浏览器版本、操作系统类型


Posted in Javascript onJanuary 29, 2015

代码很简洁,功能很实用,这里就不多废话了,直接给大家奉上代码:

/**
 * Created by Administrator on 15-1-12.
 */
function BroswerUtil() {
}
BroswerUtil = {
  //检测浏览器版本
  getBrowserVersion: function () {
    var agent = navigator.userAgent.toLowerCase();
    var arr = [];
    var Browser = "";
    var Bversion = "";
    var verinNum = "";
    //IE
    if (agent.indexOf("msie") > 0) {
      var regStr_ie = /msie [\d.]+;/gi;
      Browser = "IE";
      Bversion = "" + agent.match(regStr_ie)
    }
    //firefox
    else if (agent.indexOf("firefox") > 0) {
      var regStr_ff = /firefox\/[\d.]+/gi;
      Browser = "firefox";
      Bversion = "" + agent.match(regStr_ff);
    }
    //Chrome
    else if (agent.indexOf("chrome") > 0) {
      var regStr_chrome = /chrome\/[\d.]+/gi;
      Browser = "chrome";
      Bversion = "" + agent.match(regStr_chrome);
    }
    //Safari
    else if (agent.indexOf("safari") > 0 && agent.indexOf
("chrome") < 0) {
      var regStr_saf = /version\/[\d.]+/gi;
      Browser = "safari";
      Bversion = "" + agent.match(regStr_saf);
    }
    //Opera
    else if (agent.indexOf("opera") >= 0) {
      var regStr_opera = /version\/[\d.]+/gi;
      Browser = "opera";
      Bversion = "" + agent.match(regStr_opera);
    } else {
      var browser = navigator.appName;
      if (browser == "Netscape") {
        var version = agent.split(";");
        var trim_Version = version[7].replace(/[ ]/g, 
"");
        var rvStr = trim_Version.match(/
[\d\.]/g).toString();
        var rv = rvStr.replace(/[,]/g, "");
        Bversion = rv;
        Browser = "IE"
      }
    }
    verinNum = (Bversion + "").replace(/[^0-9.]/ig, "");
    arr.push(Browser);
    arr.push(verinNum);
    return arr;
  },
  //检测是否是XX浏览器
  WB: (function () {
    var UserAgent = navigator.userAgent.toLowerCase();
    return {
      isIE6: /msie 6.0/.test(UserAgent), // IE6
      isIE7: /msie 7.0/.test(UserAgent), // IE7
      isIE8: /msie 8.0/.test(UserAgent), // IE8
      isIE9: /msie 9.0/.test(UserAgent), // IE9
      isIE10: /msie 10.0/.test(UserAgent), // IE10
      isIE11: /msie 11.0/.test(UserAgent), // IE11
      isLB: /lbbrowser/.test(UserAgent), // 猎豹浏览器
      isUc: /ucweb/.test(UserAgent), // UC浏览器
      is360: /360se/.test(UserAgent), // 360浏览器
      isBaidu: /bidubrowser/.test(UserAgent), // 百度浏览器
      isSougou: /metasr/.test(UserAgent), // 搜狗浏览器
      isChrome: /chrome/.test(UserAgent.substr(-33, 6)), // 
Chrome浏览器
      isFirefox: /firefox/.test(UserAgent), // 火狐浏览器
      isOpera: /opera/.test(UserAgent), // Opera浏览器
      isSafire: /safari/.test(UserAgent) && !/chrome/.test
(UserAgent), // safire浏览器
      isQQ: /qqbrowser/.test(UserAgent)//qq浏览器
    };
  })(),
  //检测当前操作系统
  CurrentSystem: (function () {
    var system = {
      win: false,
      mac: false,
      xll: false,
      iphone: false,
      ipoad: false,
      ipad: false,
      ios: false,
      android: false,
      nokiaN: false,
      winMobile: false,
      wii: false,
      ps: false
    };
    var ua = navigator.userAgent;
    // 检测平台
    var p = navigator.platform;
    system.win = p.indexOf('Win') == 0;
    system.mac = p.indexOf('Mac') == 0;
    system.xll = (p.indexOf('Xll') == 0 || p.indexOf('Linux') 
== 0);
    // 检测Windows操作系统
    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 = '2000';
              break;
            case '5.1':
              system.win = 'XP';
              break;
            case '6.0':
              system.win = 'Vista';
              break;
            case '6.1':
              system.win = '7';
              break;
            case '6.2':
              system.win = '8';
              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;
    // windows mobile
    if (system.win == 'CE') {
      system.winMobile = system.win;
    } else if (system.win == 'Ph') {
      if (/Windows Phone OS (\d+.\d)/i.test(ua)) {
        system.win = 'Phone';
        system.winMobile = parseFloat(RegExp['$1']);
      }
    }
    // 检测IOS版本
    if (system.mac && ua.indexOf('Mobile') > -1) {
      if (/CPU (?:iPhone )?OS (\d+_\d+)/i.test(ua)) {
        system.ios = parseFloat(RegExp['$1'].replace('_', 
'.'));
      } else {
        system.ios = 2;    // 不能真正检测出来,所以
只能猜测
      }
    }
    // 检测Android版本
    if (/Android (\d+\.\d+)/i.test(ua)) {
      system.android = parseFloat(RegExp['$1']);
    }
    // 游戏系统
    system.wii = ua.indexOf('Wii') > -1;
    system.ps = /PlayStation/i.test(ua);
    return {
      system: system
    }
  })()
}

以上就是这款javascript封装好的检测浏览器版本和操作系统类型的代码库,希望大家能够喜欢。

Javascript 相关文章推荐
JavaScript下利用fso判断文件是否存在的代码
Dec 11 Javascript
jquery删除ID为sNews的tr元素的内容
Apr 10 Javascript
javascript定义变量时带var与不带var的区别分析
Jan 12 Javascript
js实现选中复选框文字变色的方法
Aug 14 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
bootstrap滚动监控器使用方法解析
Jan 13 Javascript
微信小程序实现根据字母选择城市功能
Aug 16 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
35个最好用的Vue开源库(史上最全)
Jan 03 Javascript
深入Node TCP模块的理解
Mar 13 Javascript
js核心基础之构造函数constructor用法实例分析
May 11 Javascript
原生JavaScript实现贪吃蛇游戏
Nov 04 Javascript
浅谈javascript中自定义模版
Jan 29 #Javascript
jQuery和AngularJS的区别浅析
Jan 29 #Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 #Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 #Javascript
使用Sticker.js实现贴纸效果
Jan 28 #Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 #Javascript
7个让JavaScript变得更好的注意事项
Jan 28 #Javascript
You might like
给海燕B411配件机起死回生配上件
2021/03/02 无线电
PHP 第二节 数据类型之数值型
2012/04/28 PHP
PHP生成Gif图片验证码
2013/10/27 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
JavaScript 基础问答三
2008/12/03 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
[01:22]DOTA2神秘商店携大量周边降临完美大师赛
2017/11/07 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
Python写的服务监控程序实例
2015/01/31 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
中学教师管理制度
2014/01/14 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
新闻传播专业求职信
2014/07/22 职场文书
研究生导师推荐信
2014/09/06 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
企业宣传语大全
2015/07/13 职场文书
高一军训感想
2015/08/07 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js