使用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 操作文件 实现方法小结
Jul 02 Javascript
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
浅谈javascript六种数据类型以及特殊注意点
Dec 20 Javascript
jquery基础教程之deferred对象使用方法
Jan 22 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
Mar 22 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
JS闭包与延迟求值用法示例
Dec 22 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
bmob js-sdk 在vue中的使用教程
Jan 21 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
vue相同路由跳转强制刷新该路由组件操作
Aug 05 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
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
javascript监听鼠标滚轮事件浅析
2014/06/05 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
vue组件name的作用小结
2018/05/23 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python编程之多态用法实例详解
2015/05/19 Python
python设计模式大全
2016/06/27 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
python读取yaml文件后修改写入本地实例
2020/04/27 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
Sofft鞋官网:世界知名鞋类品牌
2017/03/28 全球购物
英国工具中心:UK Tool Centre
2017/07/10 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
留学自荐信的技巧
2013/10/17 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书