• jquery判断当前浏览器的实现代码


    写了一个判断当前浏览器类型及版本的方法,只在IE 8/11 、谷歌 、360 浏览器(不完全)上测试过,需要用到jquery

    核心代码:

    ;(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());

    脚本之家小编特提供的完整测试代码:

    <html> 
    <head> 
    <title>jquery 浏览器判断</title> 
    </head> 
    <body> 
    <script src="http://demo.jb51.net/jslib/jquery/jquery-1.8.3.min.js"></script>
    <script type="text/javascript"> 
    (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);
    //使用方式
    alert(window.browser.name);
    //下面是ie F2中测试可以看到效果
    console.log(window.browser);
    console.log($.isIE());
    console.log($.isChrome());
    </script> 
    </body> 
    </html>

  • 相关阅读:
    Java技术路线--2循环
    Java技术路线--1基本类型与包装类
    Linux内存管理之UMA模型和NUMA模型
    最长XX子串/数组/子序列
    epoll LT 模式和 ET 模式详解
    OS篇:OS中进程的阻塞与挂起的区别
    约瑟夫环问题
    最大公约数和最小公倍数
    C++之寻找素数(素数筛)
    Linux OOM机制分析
  • 原文地址:https://www.cnblogs.com/gyjWEB/p/5035825.html
Copyright © 2020-2023  润新知