zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    codeforces C. No to Palindromes!
    codeforces D. Pashmak and Parmida's problem
    codeforces C. Little Pony and Expected Maximum
    codeforces D. Count Good Substrings
    codeforces C. Jzzhu and Chocolate
    codeforces C. DZY Loves Sequences
    codeforces D. Multiplication Table
    codeforces C. Painting Fence
    hdu 5067 Harry And Dig Machine
    POJ 1159 Palindrome
  • 原文地址:https://www.cnblogs.com/hubing/p/4844420.html
Copyright © 2011-2022 走看看