浏览器检测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 相关文章推荐
js实现通用的微信分享组件示例
Mar 10 Javascript
在jQuery中处理XML数据的大致方法
Aug 14 Javascript
分分钟玩转Vue.js组件
Oct 25 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
原生JS+Canvas实现五子棋游戏实例
Jun 19 Javascript
微信小程序scroll-x失效的完美解决方法
Jul 18 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
Dec 26 Javascript
用Vue编写抽象组件的方法
May 06 Javascript
javascript实现日历效果
Jun 17 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 Javascript
JS highcharts动态柱状图原理及实现
Oct 16 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
php2html php生成静态页函数
2008/12/08 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
php+ajax实时输入自动搜索匹配的方法
2014/12/26 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
PHP封装的分页类与简单用法示例
2019/02/25 PHP
Javascript表达式中连续的 && 和 || 之赋值区别
2010/10/17 Javascript
快速入门Vue
2016/12/19 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
jQuery实现动态添加、删除按钮及input输入框的方法
2017/04/27 jQuery
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
python使用turtle库绘制时钟
2020/03/25 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Python列表与元组的异同详解
2019/07/02 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
HTML5 transform三维立方体实现360无死角三维旋转效果
2014/08/22 HTML / CSS
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
中学生学雷锋活动心得体会
2014/03/10 职场文书
导游个人求职信范文
2014/03/23 职场文书
音乐教师求职信
2014/06/28 职场文书
2014年党建工作总结
2014/11/11 职场文书
投标承诺函格式
2015/01/21 职场文书
小学数学教学反思范文
2016/02/16 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书