浏览器检测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 相关文章推荐
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 Javascript
单独使用CKFinder选择图片的方法
Aug 21 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
Dec 31 Javascript
jquery跟js初始化加载的多种方法及区别介绍
Apr 02 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
Sep 04 Javascript
jquery实现图片上传之前预览的方法
Jul 11 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
JavaScript链式调用实例浅析
Dec 19 Javascript
详解Vue之父子组件传值
Apr 01 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
动态规划之使用备忘录来改进Javascript函数
Apr 07 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/03/27 PHP
PHP 文件上传限制问题
2019/09/01 PHP
JS简单实现元素复制示例附图
2013/11/19 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
详解 Python中LEGB和闭包及装饰器
2017/08/03 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
2020/05/25 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
机械工程师求职自我评价
2013/09/23 职场文书
销售人员个人求职信
2013/09/26 职场文书
高级护理专业毕业生推荐信
2013/12/25 职场文书
地球一小时倡议书
2014/04/15 职场文书
小小商店教学反思
2014/04/27 职场文书
产品设计开发计划书
2014/05/07 职场文书
经典团队口号
2014/06/06 职场文书
筑梦中国心得体会
2016/01/18 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers