使用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闭包的理解和实例
Aug 12 Javascript
基于jQuery的仿flash的广告轮播代码
Nov 04 Javascript
jquery图片不完全按比例自动缩小的简单代码
Jul 29 Javascript
jQuery+HTML5实现图片上传前预览效果
Aug 20 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
js中scrollTop()方法和scroll()方法用法示例
Oct 03 Javascript
微信小程序mpvue点击按钮获取button值的方法
May 29 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 Javascript
Node.js 中判断一个文件是否存在
Aug 24 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
Sep 24 Javascript
vue2.0 watch里面的 deep和immediate用法说明
Oct 30 Javascript
微信小程序onShareTimeline()实现分享朋友圈
Jan 07 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
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
深入理解JavaScript系列(6) 强大的原型和原型链
2012/01/15 Javascript
基于jquery点击自以外任意处,关闭自身的代码
2012/02/10 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
给easyui datebox扩展一个清空的实例
2016/11/09 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
VUE中v-model和v-for指令详解
2017/06/23 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
JS Math对象与Math方法实例小结
2019/07/05 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
vue-router 按需加载 component: () => import() 报错的解决
2020/09/22 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
详细讲解Python中的文件I/O操作
2015/05/24 Python
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
python3.5绘制随机漫步图
2018/08/27 Python
mac使用python识别图形验证码功能
2020/01/10 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
锐步英国官网:Reebok英国
2019/11/29 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
区域销售经理职责
2013/12/22 职场文书
2014年冬季防火方案
2014/05/21 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
电工实训心得体会
2016/01/14 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
在python中读取和写入CSV文件详情
2022/06/28 Python