使用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 相关文章推荐
ext监听事件方法[初级篇]
Apr 27 Javascript
jQuery 打造动态下滑菜单实现说明
Apr 15 Javascript
javascript 数据类型转换(parseInt,parseFloat)
Jul 20 Javascript
多个$(document).ready()的执行顺序实例分析
Jul 26 Javascript
js实现交换运动效果的方法
Apr 10 Javascript
javascript实现验证IP地址等相关信息代码
May 10 Javascript
H5实现中奖记录逐行滚动切换效果
Mar 13 Javascript
vue style width a href动态拼接问题的解决
Aug 07 Javascript
Javascript confirm多种使用方法解析
Sep 25 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
Nov 11 Javascript
JavaScript实现网页tab栏效果制作
Nov 20 Javascript
JavaScript字符串转数字的简单实现方法
Nov 27 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+MySQL 制作简单的留言本
2009/11/02 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
jquery 获取标签名(tagName)示例代码
2013/07/11 Javascript
js日期联动示例
2014/05/02 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
2019/05/14 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
ES6字符串的扩展实例
2020/12/21 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
Python使用matplotlib绘制动画的方法
2015/05/20 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
用python对oracle进行简单性能测试
2020/12/05 Python
Lee牛仔裤澳大利亚官网:美国著名牛仔裤品牌
2017/09/02 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
儿媳婚宴答谢词
2014/01/14 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
解除合同协议书
2014/04/17 职场文书
监察建议书格式
2014/05/19 职场文书
学校就业推荐信范文
2014/05/19 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
语文教研活动总结
2014/07/02 职场文书
安全员岗位职责范本
2015/04/11 职场文书
新党员入党决心书
2015/09/22 职场文书