使用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 相关文章推荐
js左侧三级菜单导航实例代码
Sep 13 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 Javascript
js实现圆盘记速表
Aug 03 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
利用JS做网页特效_大图轮播(实例讲解)
Aug 09 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
vue动态路由配置及路由传参的方式
May 23 Javascript
基于vue、react实现倒计时效果
Aug 26 Javascript
vant IndexBar实现的城市列表的示例代码
Nov 20 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
Feb 26 Javascript
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
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
PHPShop存在多个安全漏洞
2006/10/09 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP扩展开发入门教程
2015/02/26 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
Smarty模板配置实例简析
2019/07/20 PHP
JS中style属性
2006/10/11 Javascript
checkbox 多选框 联动实现代码
2008/10/22 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
用JavaScript获取DOM元素位置和尺寸大小的方法
2013/04/12 Javascript
jquery动态更换设置背景图的方法
2014/03/25 Javascript
JQuery记住用户名和密码的具体实现
2014/04/04 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
JS原生带小白点轮播图实例讲解
2017/07/22 Javascript
JavaScript判断日期时间差的实例代码
2018/03/01 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Python数据库小程序源代码
2019/09/15 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
学前教育学生自荐信范文
2013/12/31 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript