浏览器检测JS代码(兼容目前各大主流浏览器)


Posted in Javascript onFebruary 21, 2016

本文实例介绍了JS代码实现浏览器检测,分享给大家供大家参考,具体内容如下

var BrowserMatch = {
  init: function () {
    this.browser = this.getBrowser().browser || "An Unknown Browser";
    this.version = this.getBrowser().version || "An Unknown Version";
    this.OS = this.getOS() || "An Unknown OS";
  },
  getOS:function(){
    if(navigator.platform.indexOf("Win")!= -1) return "Windows";
    if(navigator.platform.indexOf("Mac")!= -1) return "Mac";
    if(navigator.platform.indexOf("Linux")!= -1) return "Linux";
    if(navigator.userAgent.indexOf("iPhone")!= -1) return "iPhone/iPod";
  },
  getBrowser:function () {
    var rMsie = /(msie\s|trident\/7)([\w\.]+)/;
    var rTrident = /(trident)\/([\w.]+)/;
    var rFirefox = /(firefox)\/([\w.]+)/; 
    var rOpera = /(opera).+version\/([\w.]+)/;
    var rNewOpera = /(opr)\/(.+)/;
    var rChrome = /(chrome)\/([\w.]+)/;
    var rSafari = /version\/([\w.]+).*(safari)/;
    var ua = navigator.userAgent.toLowerCase();
    var matchBS,matchBS2;
    matchBS = rMsie.exec(ua);
    if (matchBS != null) {
      matchBS2 = rTrident.exec(ua);
      if (matchBS2 != null){
        switch (matchBS2[2]){
          case "4.0": return { browser : "IE", version : "8" };break;
          case "5.0": return { browser : "IE", version : "9" };break;
          case "6.0": return { browser : "IE", version : "10" };break;
          case "7.0": return { browser : "IE", version : "11" };break;
          default:return { browser : "IE", version : "Undefined" };
        }
      }else{
        return {browser : "IE", version : matchBS[2] || "0" };
      }
    }
    matchBS = rFirefox.exec(ua);  
    if ((matchBS != null)&&(!(window.attachEvent))&&(!(window.chrome))&&(!(window.opera))) {  
      return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
    }
    matchBS = rOpera.exec(ua);         
    if ((matchBS != null)&&(!(window.attachEvent))) {     
      return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
    }
    matchBS = rChrome.exec(ua);  
    if ((matchBS != null)&&(!!(window.chrome))&&(!(window.attachEvent))) {
      matchBS2 = rNewOpera.exec(ua);       
      if(matchBS2 == null){
        return { browser : matchBS[1] || "", version : matchBS[2] || "0" };
      }else{
        return { browser : "Opera", version : matchBS2[2] || "0" };
      }  
    }
    matchBS = rSafari.exec(ua);          
    if ((matchBS != null)&&(!(window.attachEvent))&&(!(window.chrome))&&(!(window.opera))) {   
      return { browser : matchBS[2] || "", version : matchBS[1] || "0" };
    }           
  }
};  
BrowserMatch.init();

调用方法:(首先得引入js文件,大家应该都懂的)

获取浏览器名:BrowserMatch.browser;

获取浏览器版本:BrowserMatch.version;

获取所处操作系统:BrowserMatch.OS;

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jquery 与NVelocity 产生冲突的解决方法
Jun 13 Javascript
vue.js表格组件开发的实例详解
Oct 12 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
jquery css实现邮箱自动补全
Nov 14 Javascript
javascript中replace使用方法总结
Mar 01 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
关于vue中的ajax请求和axios包问题
Apr 19 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 03 Javascript
JavaScript实现轮播图效果代码实例
Sep 28 Javascript
vue $mount 和 el的区别说明
Sep 11 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
Feb 21 #Javascript
全面详细的jQuery常见开发技巧手册
Feb 21 #Javascript
完善的jquery处理机制
Feb 21 #Javascript
jquery对象和DOM对象的任意相互转换
Feb 21 #Javascript
jQuery实现div拖拽效果实例分析
Feb 20 #Javascript
jQuery实现简单隔行变色的方法
Feb 20 #Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
Feb 20 #Javascript
You might like
PHP中比较时间大小实例
2014/08/21 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
使用js 设置url参数
2013/07/08 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
Angular排序实例详解
2017/06/28 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
npm qs模块使用详解
2020/02/07 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
[00:12]DAC2018 Miracle-站上中单舞台,他能否再写奇迹?
2018/04/06 DOTA
Python max内置函数详细介绍
2016/11/17 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
Python 使用多属性来进行排序
2019/09/01 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Python龙贝格法求积分实例
2020/02/29 Python
pandas中ix的使用详细讲解
2020/03/09 Python
python实现猜数游戏
2020/03/27 Python
django API 中接口的互相调用实例
2020/04/01 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
Python代码中如何读取键盘录入的值
2020/05/27 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
时尚圣经:The Fashion Bible
2019/03/03 全球购物
新手上路标语
2014/06/20 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
《搭石》教学反思
2016/02/18 职场文书