使用javascript实现判断当前浏览器


Posted in Javascript onApril 14, 2015

写了一个判断当前浏览器类型及版本的方法,只在IE 8/11 、谷歌 、360 浏览器(不完全)上测试过

希望大家提出意见

;(function($, window, document,undefined){
  if(!window.browser){
     
    var userAgent = navigator.userAgent.toLowerCase(),uaMatch;
    window.browser = {}
     
    /**
     * 判断是否为ie
     */
    function isIE(){
      return ("ActiveXObject" in window);
    }
    /**
     * 判断是否为谷歌浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/chrome\/([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'chrome';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 判断是否为火狐浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/firefox\/([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'firefox';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 判断是否为opera浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/opera.([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'opera';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 判断是否为Safari浏览器
     */
    if(!uaMatch){
      uaMatch = userAgent.match(/safari\/([\d.]+)/);
      if(uaMatch!=null){
        window.browser['name'] = 'safari';
        window.browser['version'] = uaMatch[1];
      }
    }
    /**
     * 最后判断是否为IE
     */
    if(!uaMatch){
      if(userAgent.match(/msie ([\d.]+)/)!=null){
        uaMatch = userAgent.match(/msie ([\d.]+)/);
        window.browser['name'] = 'ie';
        window.browser['version'] = uaMatch[1];
      }else{
        /**
         * IE10
         */
        if(isIE() && !!document.attachEvent && (function(){"use strict";return !this;}())){
          window.browser['name'] = 'ie';
          window.browser['version'] = '10';
        }
        /**
         * IE11
         */
        if(isIE() && !document.attachEvent){
          window.browser['name'] = 'ie';
          window.browser['version'] = '11';
        }
      }
    }
 
    /**
     * 注册判断方法
     */
    if(!$.isIE){
      $.extend({
        isIE:function(){
          return (window.browser.name == 'ie');
        }
      });
    }
    if(!$.isChrome){
      $.extend({
        isChrome:function(){
          return (window.browser.name == 'chrome');
        }
      });
    }
    if(!$.isFirefox){
      $.extend({
        isFirefox:function(){
          return (window.browser.name == 'firefox');
        }
      });
    }
    if(!$.isOpera){
      $.extend({
        isOpera:function(){
          return (window.browser.name == 'opera');
        }
      });
    }
    if(!$.isSafari){
      $.extend({
        isSafari:function(){
          return (window.browser.name == 'safari');
        }
      });
    }
  }
})(jQuery, window, document);

//使用方式

console.log(window.browser);
console.log($.isIE());
console.log($.isChrome());

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
javascript实现面向对象类的功能书写技巧
Mar 07 Javascript
javascript:;与javascript:void(0)使用介绍
Jun 05 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
JS的encodeURI和java的URLDecoder.decode使用介绍
May 08 Javascript
纯javascript实现图片延时加载方法
Aug 21 Javascript
js html css实现复选框全选与反选
Oct 09 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 Javascript
linux 后台运行node服务指令方法
May 23 Javascript
Vue中的作用域CSS和CSS模块的区别
Oct 09 Javascript
原型和原型链 prototype和proto的区别详情
Nov 02 Javascript
jQuery获得指定元素坐标的方法
Apr 14 #Javascript
JavaScript时间转换处理函数
Apr 14 #Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 #Javascript
js正则表达式匹配数字字母下划线等
Apr 14 #Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 #Javascript
JavaScript面向对象的实现方法小结
Apr 14 #Javascript
JavaScript使用Prototype实现面向对象的方法
Apr 14 #Javascript
You might like
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
Javascript 中的类和闭包
2010/01/08 Javascript
最新28个很棒的jQuery 教程
2011/05/28 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
Angularjs中使用轮播图指令swiper
2017/05/30 Javascript
js实现HTML中Select二级联动的实例
2018/01/05 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
Python 学习笔记
2008/12/27 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
python检查指定文件是否存在的方法
2015/07/06 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
python爬取m3u8连接的视频
2018/02/28 Python
Python 将pdf转成图片的方法
2018/04/23 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
2020/10/22 Python
python3 kubernetes api的使用示例
2021/01/12 Python
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
《称赞》教学反思
2016/02/17 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python