浏览器检测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 相关文章推荐
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
Apr 02 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
Mar 06 Javascript
关于jquery的多个选择器的使用示例
Oct 18 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
Nov 25 Javascript
jquery实现动态菜单的实例代码
Nov 28 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
node.js中的buffer.toString方法使用说明
Dec 14 Javascript
AngularJS使用ngOption实现下拉列表的实例代码
Jan 23 Javascript
AngularJS的脏检查深入分析
Apr 22 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
Vue SSR 即时编译技术的实现
May 06 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的APC模块实现上传进度条
2015/10/27 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
日常收藏的jquery技巧
2015/12/02 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
python线程池threadpool实现篇
2018/04/27 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python中偏函数用法示例
2018/06/07 Python
python如何查看微信消息撤回
2018/11/27 Python
Python中文编码知识点
2019/02/18 Python
python3的print()函数的用法图文讲解
2019/07/16 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
美国领先的在线邮轮旅游公司:CruiseDirect
2018/06/07 全球购物
网络事业创业计划书范文
2014/01/09 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
人口与计划生育责任书
2015/05/09 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers
Docker安装MySql8并远程访问的实现
2022/07/07 Servers