使用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 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
jquery photoFrame 图片边框美化显示插件
Jun 28 Javascript
用js模拟JQuery的show与hide动画函数代码
Sep 20 Javascript
js加载之使用DOM方法动态加载Javascript文件
Nov 08 Javascript
jQuery实现hover合成事件的方法
Aug 06 Javascript
jQuery动态改变多行文本框高度的方法
Sep 07 Javascript
Javascript基础回顾之(二) js作用域
Jan 31 Javascript
Javascript中引用类型传递的知识点小结
Mar 06 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
Mar 06 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
Aug 22 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
ASP知识讲座四
2006/10/09 PHP
第七节--类的静态成员
2006/11/16 PHP
php你的验证码安全码?
2007/01/02 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
jquery蒙版控件实现代码
2010/12/08 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
微信小程序 教程之数据绑定
2016/10/18 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python 调用 Windows API COM 新法
2019/08/22 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
法制宣传日活动总结
2014/04/29 职场文书
国际会计专业求职信
2014/08/04 职场文书
投标承诺函格式
2015/01/21 职场文书
Python Django模型详解
2021/10/05 Python