浏览器检测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 相关文章推荐
JavaScript 的方法重载效果
Aug 07 Javascript
js中字符替换函数String.replace()使用技巧
Aug 14 Javascript
ie下动态加态js文件的方法
Sep 13 Javascript
js和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
Javascript中引用示例介绍
Feb 21 Javascript
浅析tr的隐藏和显示问题
Mar 05 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
详解如何使用webpack打包Vue工程
May 27 Javascript
JavaScript变量作用域_动力节点Java学院整理
Jun 27 Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 Javascript
GOJS+VUE实现流程图效果
Dec 01 Javascript
Jquery cookie插件实现原理代码解析
Aug 04 jQuery
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_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
php微信开发之上传临时素材
2016/06/24 PHP
php使用lua+redis实现限流,计数器模式,令牌桶模式
2019/04/04 PHP
简单的无缝滚动程序-仅几行代码
2007/05/08 Javascript
javascript获取当前ip的代码
2009/05/10 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
Vue+Flask实现简单的登录验证跳转的示例代码
2018/01/13 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[58:00]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第二场 2月7日
2021/03/11 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Django获取应用下的所有models的例子
2019/08/30 Python
python 通过文件夹导入包的操作
2020/06/01 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
标准毕业生自荐信范文
2013/11/04 职场文书
酒店保安员岗位职责
2014/01/31 职场文书
大学学习计划书范文
2014/05/02 职场文书
优秀德育工作者事迹材料
2014/05/07 职场文书
红色故事演讲稿
2014/05/22 职场文书
银行主办会计岗位职责
2014/08/13 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
紫日观后感
2015/06/05 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js