浏览器检测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 string 扩展库代码
Apr 09 Javascript
js function定义函数的几种不错方法
Feb 27 Javascript
Bootstrap3.0学习教程之JS折叠插件
May 27 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
AngularJS页面传参的5种方式
Apr 01 Javascript
详解jQuery获取特殊属性的值以及设置内容
Nov 14 jQuery
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
May 06 Javascript
jsonp实现百度下拉框功能的方法分析
May 10 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 Javascript
一文快速了解JQuery中的AJAX
May 31 jQuery
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
Sep 08 Javascript
JavaScript canvas实现跟随鼠标移动小球
Feb 09 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
乱谈我对耳机、音箱的感受
2021/03/02 无线电
逐步提升php框架的性能
2008/01/10 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
2011/09/20 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
JavaScript中关于iframe滚动条的去除和保留
2016/11/17 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
python中字符串前面加r的作用
2015/06/04 Python
Python使用sort和class实现的多级排序功能示例
2018/08/15 Python
python装饰器简介---这一篇也许就够了(推荐)
2019/04/01 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python re模块匹配贪婪和非贪婪模式详解
2020/02/11 Python
python Shapely使用指南详解
2020/02/18 Python
python 实现有道翻译功能
2021/02/26 Python
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
机关门卫制度
2014/02/01 职场文书
大学秋游活动方案
2014/02/11 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
党员民主生活会材料
2014/12/15 职场文书
办公室规章制度范本
2015/08/04 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL