• js+jquery检测用户浏览器型号(转)


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>浏览器检测</title>
    </head>
    <script>
    window.    browserCheck();
    }
    </script>
    <script src="jquery.min.js"></script>
    <script src="latest.js"></script>
    <script src="check.js"></script>
    <body>
    </body>
    </html>

    这是Check.js显示文件,用来打印用户浏览器的版本号:

    function browserCheck(){
      var userAgent = navigator.userAgent,
      rMsie = /(msies|trident.*rv:)([w.]+)/,
      rFirefox = /(firefox)/([w.]+)/,
      rOpera = /(opera).+version/([w.]+)/,
      rChrome = /(chrome)/([w.]+)/,
      rSafari = /version/([w.]+).*(safari)/;
      var browser;
      var version;
      var ua = userAgent.toLowerCase();
      function uaMatch(ua) {
      var match = rMsie.exec(ua);
      if (match != null){
        return { browser : "IE", version : match[2] || "0" };
      }
      var match = rFirefox.exec(ua);
      if (match != null) {
        return { browser : match[1] || "", version : match[2] || "0" };
      }
      var match = rOpera.exec(ua);
      if (match != null) {
        return { browser : match[1] || "", version : match[2] || "0" };
      }
      var match = rChrome.exec(ua);
      if (match != null) {
        return { browser : match[1] || "", version : match[2] || "0" };
      }
      var match = rSafari.exec(ua);
      if (match != null) {
        return { browser : match[1] || "", version : match[2] || "0" };
      }
      if (match != null) {
        return { browser : "", version : "0" };
      }
            }
      var browserMatch = uaMatch(userAgent.toLowerCase());
      if (browserMatch.browser) {
        browser = browserMatch.browser;
        version = browserMatch.version;
      }
      var i=0;
      var s = $.ua().is360se;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用360安全浏览器Chrome内核,内核版本号:"+version);
        i=1;
      }
      var s = $.ua().is360ee;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用360极速浏览器Chrome内核,内核版本号:"+version);
        i=1;
      }
      var s = $.ua().isChrome;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用谷歌浏览器(原版),内核版本号:"+version);
        i=1;
      }
      var s = $.ua().isLiebao;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用猎豹浏览器chrome内核,内核版本号:"+version);
        i=1;
      }
      var s = $.ua().isLiebao;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用猎豹浏览器chrome内核,内核版本号:"+version);
        i=1;
      }
      var s = $.ua().isSougou;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用搜狗浏览器chrome内核,内核版本号:"+version);
        i=1;
      }
      var s1 = $.ua().isIe;
      if(s1==true){
        var s2 = $.ua().ie;
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用IE浏览器,内核版本号:"+version);
        if(s2<8){
        alert("用户浏览器版本检测――by Mona_侠快:您使用的浏览器在IE8.0以下,为了您获得良好的上网体验,强烈建议您升级您的IE,或者使用360安全浏览器!");
        }
        i=1;
      }
      var s = $.ua().isFirefox;;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用firefox浏览器,内核版本号:"+version);
        i=1;
      }
      var s = $.ua().isMobile;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用手机版浏览器");
        i=1;
      }
      var s = $.ua().isTablet;
      if(s==true){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用平板浏览器");
        i=1;
      }   
      if(i==0){
        document.write("用户浏览器版本检测――by Mona_侠快:你正在使用的是"+browser+"浏览器"+"内核版本号:"+version);
      }
    }
    // JavaScript Document

     其中有一个jquery插件jquery.min.js,请到附件中下载^_^!

       附件中包含了这几个文件。

       这个latest.js是用来检测浏览器版本的:

    /**
     * 1. 获取ua字符串
     * $.ua().ua;
     *
     * 2. 设置ua字符串
     * $.ua("string");
     *
     * 3. 获取参数
     * $.ua().platform;
     * $.ua().browser;
     * $.ua().engine;
     *
     * 4. 内核判断
     * $.ua().isWebkit;
     * $.ua().isGecko;
     * $.ua().isTrident;
     *
     * 4. 外壳判断
     * $.ua().isChrome;
     * $.ua().isFirefox;
     * $.ua().is360se;
     * $.ua().is360ee;
     * $.ua().isLiebao;
     * $.ua().isSougou;
     * $.ua().ie;
     * $.ua().isIe;
     * $.ua().isIe6;
     * $.ua().isIe7;
     * $.ua().isIe8;
     * $.ua().isIe9;
     * $.ua().isIe10;
     * $.ua().isIe11;
     */
    ;
    (function ($, win, undefined) {
      var UA = win.navigator.userAgent,
        doc = win.document,
        parseRule = {
          platforms: [
            // windows phone
            {
              name: 'windows phone',
              versionSearch: 'windows phone os ',
              versionNames: [ // windows phone must be tested before win
                {
                  number: '7.5',
                  name: 'mango'
                }
              ]
            },
            // windows
            {
              name: 'win',
              slugName: 'windows',
              versionSearch: 'windows(?: nt)? ',
              versionNames: [{
                number: '6.2',
                name: 'windows 8'
              }, {
                number: '6.1',
                name: 'windows 7'
              }, {
                number: '6.0',
                name: 'windows vista'
              }, {
                number: '5.2',
                name: 'windows xp'
              }, {
                number: '5.1',
                name: 'windows xp'
              }, {
                number: '5.0',
                name: 'windows 2000'
              }]
            },
            // ipad
            {
              name: 'ipad',
              versionSearch: 'cpu os ',
              flags: ['ios']
            },
            // ipad and ipod must be tested before iphone
            {
              name: 'ipod',
              versionSearch: 'iphone os ',
              flags: ['ios']
            },
            // iphone
            {
              name: 'iphone',
              versionSearch: 'iphone os ',
              flags: ['ios']
            },
            // iphone must be tested before mac
            {
              name: 'mac',
              versionSearch: 'os x ',
              versionNames: [{
                number: '10.8',
                name: 'mountainlion'
              }, {
                number: '10.7',
                name: 'lion'
              }, {
                number: '10.6',
                name: 'snowleopard'
              }, {
                number: '10.5',
                name: 'leopard'
              }, {
                number: '10.4',
                name: 'tiger'
              }, {
                number: '10.3',
                name: 'panther'
              }, {
                number: '10.2',
                name: 'jaguar'
              }, {
                number: '10.1',
                name: 'puma'
              }, {
                number: '10.0',
                name: 'cheetah'
              }]
            },
            // android
            {
              name: 'android',
              versionSearch: 'android ',
              versionNames: [
                // android must be tested before linux
                {
                  number: '4.1',
                  name: 'jellybean'
                }, {
                  number: '4.0',
                  name: 'icecream sandwich'
                }, {
                  number: '3.',
                  name: 'honey comb'
                }, {
                  number: '2.3',
                  name: 'ginger bread'
                }, {
                  number: '2.2',
                  name: 'froyo'
                }, {
                  number: '2.',
                  name: 'eclair'
                }, {
                  number: '1.6',
                  name: 'donut'
                }, {
                  number: '1.5',
                  name: 'cupcake'
                }
              ]
            },
            // blackberry
            {
              name: 'blackberry',
              versionSearch: '(?:blackberry\d{4}[a-z]?|version)/'
            },
            // blackberry
            {
              name: 'bb',
              slugName: 'blackberry',
              versionSearch: '(?:version)/'
            },
            // blackberry
            {
              name: 'playbook',
              slugName: 'blackberry',
              versionSearch: '(?:version)/'
            },
            // linux
            {
              name: 'linux'
            },
            // nokia
            {
              name: 'nokia'
            }
          ],
          browsers: [{
              name: 'iemobile',
              versionSearch: 'iemobile/'
            }, // iemobile must be tested before msie
            {
              name: 'msie',
              slugName: 'ie',
              versionSearch: 'msie '
            }, {
              name: 'firefox',
              versionSearch: 'firefox/'
            }, {
              name: 'chrome',
              versionSearch: 'chrome/'
            }, // chrome must be tested before safari
            {
              name: 'safari',
              versionSearch: '(?:browser|version)/'
            }, {
              name: 'opera',
              versionSearch: 'version/'
            }
          ],
          engines: [{
              name: 'trident',
              versionSearch: 'trident/'
            }, {
              name: 'webkit',
              versionSearch: 'webkit/'
            }, // webkit must be tested before gecko
            {
              name: 'gecko',
              versionSearch: 'rv:'
            }, {
              name: 'presto',
              versionSearch: 'presto/'
            }
          ]
        },
        // [10,)版本就无法判断
        ieVer = (function () {
          var v = 3,
            p = doc.createElement('p'),
            all = p.getElementsByTagName('i');
          while (
            p.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]);
          return v > 4 ? v : 0;
        }()),
        ieAX = win.ActiveXObject,
        ieMode = doc.documentMode,
        isIe = ieAX || ieMode,
        isIe6 = (ieAX && ieVer == 6) || (ieMode == 6),
        isIe7 = (ieAX && ieVer == 7) || (ieMode == 7),
        isIe8 = (ieAX && ieVer == 8) || (ieMode == 8),
        isIe9 = (ieAX && ieVer == 9) || (ieMode == 9),
        isIe10 = ieMode === 10,
        isIe11 = ieMode === 11,
        isChrome = !isIe && _mime("type", "application/vnd.chromium.remoting-viewer"),
        isLiebao = !isIe && !! win.external && !! win.external.LiebaoAutoFill_CopyToClipboard,
        is360ee = !isIe && !isChrome && !isLiebao && _plugins("filename", "pepflashplayer.dll"),
        is360se = !isIe && !is360ee && _mime("suffixes", "dll", "description", /fancy/),
        isSougou = !isIe && _plugins("filename", "NPComBrg310.dll"),
        isFirefox = win.scrollMaxX !== undefined;
      if (isIe6) {
        ieVer = 6;
      } else if (isIe7) {
        ieVer = 7;
      } else if (isIe8) {
        ieVer = 8;
      } else if (isIe9) {
        ieVer = 9;
      } else if (isIe10) {
        ieVer = 10;
      } else if (isIe11) {
        ieVer = 11;
      }
      $.extend({
        ua: function () {
          var args = arguments,
            argL = args.length,
            ua = (argL == 1 && $.type(args[0]) == "string" ? args[0] : UA).toLowerCase(),
            objPlatform = _parse(parseRule.platforms, ua),
            objBrowser = _parse(parseRule.browsers, ua, true),
            objEngine = _parse(parseRule.engines, ua);
          return {
            // 返回ua字符串
            ua: ua,
            // 操作平台
            platform: $.extend({}, objPlatform, {
              os: win.navigator.platform.toLowerCase(),
              plugins: win.navigator.plugins
            }),
            // 浏览器内核
            engine: objEngine,
            // 浏览器外壳
            browser: objBrowser,
            // ie
            isIe: !! ieVer,
            isIe6: isIe6,
            isIe7: isIe7,
            isIe8: isIe8,
            isIe9: isIe9,
            isIe10: isIe10,
            isIe11: isIe11,
            ie: ieVer,
            // 内核
            isWebkit: !! objEngine.isWebkit,
            isGecko: !! objEngine.isGecko,
            isTrident: !! objEngine.isTrident,
            // 外壳[优先特征判断]
            isChrome: isChrome,
            is360ee: is360ee,
            is360se: is360se,
            isSougou: isSougou,
            isLiebao: isLiebao,
            isFirefox: isFirefox,
            // 类型
            isMobile: objPlatform.isMobile,
            isTablet: objPlatform.isTablet,
            isDesktop: objPlatform.isDesktop
          };
        }
      });
      /**
       * 解析
       * 参考:https://github.com/terkel/jquery-ua
       * @param  {Array} 需要解析的数据
       * @param  {String} 需要解析的ua字符串
       * @param  {Boolean} 是否为解析浏览器数据
       * @return {Object} 解析后的对象
       * @version 1.0
       * 2013年9月27日13:36:47
       */
      function _parse(rule, ua, isBrowser) {
        var item = {},
          name,
          versionSearch,
          flags,
          versionNames,
          i,
          is,
          ic,
          j,
          js,
          jc;
        if (isBrowser && ieVer) {
          return {
            name: "ie",
            ie: true,
            version: ieVer,
            isIe: true
          }
        }
        for (i = 0, is = rule.length; i < is; i++) {
          ic = rule[i];
          name = ic.name;
          versionSearch = ic.versionSearch;
          flags = ic.flags;
          versionNames = ic.versionNames;
          if (ua.indexOf(name) !== -1) {
            item.name = name.replace(/s/g, '');
            if (ic.slugName) {
              item.name = ic.slugName;
            }
            item["is" + _upperCase1st(item.name)] = true;
            item.version = ('' + (new RegExp(versionSearch + '(\d+((\.|_)\d+)*)').exec(ua) || [, 0])[1]).replace(/_/g, '.');
            if (flags) {
              for (j = 0, js = flags.length; j < js; j++) {
                item["is" + _upperCase1st(flags[j])] = true;
              }
            }
            if (versionNames) {
              for (j = 0, js = versionNames.length; j < js; j++) {
                jc = versionNames[j];
                if (item.version.indexOf(jc.number) === 0) {
                  item.fullname = jc.name;
                  item["is" + _upperCase1st(item.fullname)] = true;
                  break;
                }
              }
            }
            if (rule === parseRule.platforms) {
              item.isMobile = /mobile|phone/.test(ua) || item.isBlackberry;
              item.isMobile = item.isMobile === undefined ? false : true;
              item.isTablet = /tablet/.test(ua) || item.isIpad || (item.isAndroid && !/mobile/.test(ua));
              item.isTablet = item.isTablet === undefined ? false : true;
              if (item.isTablet) item.isMobile = false;
              item.isDesktop = !item.isMobile && !item.isTablet ? true : false;
              if (item.ios) {
                item.fullname = 'ios' + parseInt(item.version, 10);
                item["is" + _upperCase1st(item.fullname)] = true;
              }
            }
            break;
          }
        }
        if (!item.name) {
          item['isUnknown'] = true;
          item.name = '';
          item.version = '';
        }
        return item;
      }
      // 大写第一个字母
      function _upperCase1st(string) {
        return string.replace(/^(w)/, function (w) {
          return w.toUpperCase()
        });
      }
      // 测试mime
      function _mime(where, value, name, nameReg) {
        var mimeTypes = win.navigator.mimeTypes,
          i;
        for (i in mimeTypes) {
          if (mimeTypes[i][where] == value) {
            if (name !== undefined && nameReg.test(mimeTypes[i][name])) return true;
            else if (name === undefined) return true;
          }
        }
        return false;
      }
      // 测试plugins
      function _plugins(where, value) {
        var plugins = win.navigator.plugins,
          i;
        for (i in plugins) {
          if (plugins[i][where] == value) return true;
        }
        return false;
      }
    })(jQuery, this);

    转:http://www.tuicool.com/articles/3aQvee

  • 相关阅读:
    bzoj 2142 礼物——扩展lucas模板
    bzoj 4591 [Shoi2015]超能粒子炮·改——组合数前缀和
    bzoj 4403 序列统计——转化成组合数的思路
    bzoj 2982 combination——lucas模板
    bzoj 3505 [Cqoi2014]数三角形——排列组合
    bzoj 3398 [Usaco2009 Feb]Bullcow 牡牛和牝牛——前缀和优化dp / 排列组合
    bzoj 1009 [HNOI2008]GT考试——kmp+矩阵优化dp
    bzoj 2427 [HAOI2010]软件安装
    bzoj 1951 [Sdoi2010]古代猪文 ——数学综合
    bzoj4247挂饰——DP
  • 原文地址:https://www.cnblogs.com/hubing/p/4844420.html
Copyright © 2020-2023  润新知