浏览器检测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 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
May 28 Javascript
ie8模式下click无反应点击option无反应的解决方法
Oct 11 Javascript
Bootstrap入门教程一Hello Bootstrap初识
Mar 02 Javascript
基于javaScript的this指向总结
Jul 22 Javascript
微信小程序如何获取用户信息
Jan 26 Javascript
深入浅析Vue中的Prop
Jun 10 Javascript
[jQuery] 事件和动画详解
Mar 05 jQuery
JS实现星星海特效
Dec 24 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 Javascript
解决vuex刷新数据消失问题
Nov 12 Javascript
Nest.js参数校验和自定义返回数据格式详解
Mar 29 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
星际中的相关伤害
2020/03/04 星际争霸
Protoss兵种对照表
2020/03/14 星际争霸
使用PHP模拟HTTP认证
2006/10/09 PHP
php+AJAX传送中文会导致乱码的问题的解决方法
2008/09/08 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
浅析Ajax语法
2016/12/05 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
2017/07/14 NodeJs
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
[01:32]DOTA2 2015国际邀请赛中国区预选赛第四日战报
2015/05/29 DOTA
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
对python条件表达式的四种实现方法小结
2019/01/30 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
德国网上药房:Apotal
2017/04/04 全球购物
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
毕业生找工作求职信
2014/08/05 职场文书
企业百日安全活动总结
2015/05/07 职场文书
初中信息技术教学反思
2016/02/16 职场文书
用python自动生成日历
2021/04/24 Python
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
利用js实现简单开关灯代码
2021/11/23 Javascript
Redis实现一个账号只能登录一个设备
2022/04/19 Redis