zoukankan      html  css  js  c++  java
  • 浏览器版本识别

    前言:最近要完成一个统计各浏览器访问量占比的任务,于是好好查了查以前半知半解的navigator.userAgent,总结如下。通过navigator.userAgent可以获得包含浏览器版本信息的字符串。本文分两部分:

    1)各浏览器的userAgent特点;

    2)如何识别各浏览器版本

    各浏览器的userAgent

    (以下数据为工作中的实际数据,不同版本的浏览器仅各列出具有代表性的一条)

    //IE各版本
    Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E);//IE6
    Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0);//IE7
    Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0);//IE8
    Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/7.0);//IE9
    Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0);//IE10
    Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko;//IE11
    Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393;//IE edge
    /*特点:IE6~IE10会包含compatible和MSIE,IE11包含rv:11,IE edge包含Edge*/
    //其他浏览器
    Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML,like Gecko) Version/5.1 Safari/534.50;//safari浏览器
    Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36;//chrome浏览器
    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0;//firefox
    Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11;//opera
    /*特点:
    Safari:包含Safari,且不包含Chrome
    chrome:包含Safari,且包含Chrome
    firefox:包含Firefox
    Opera:包含Opera
     */

    以上仅列出常见浏览器,更多其他浏览器的详细信息各参见文章最后的参考链接。

    识别浏览器版本

    function BrowserType(){
      // var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
    var userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET4.0C; .NET4.0E)"
      var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器
      var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1  ; //判断是否IE6~IE10浏览器
      var isEdge = userAgent.indexOf("Edge") > -1; //判断是否IE的Edge浏览器
      var isIE11 = userAgent.indexOf("rv:11") > -1;//判断是否为IE11浏览器
      var isFF = userAgent.indexOf("Firefox") > -1; //判断是否Firefox浏览器
      var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判断是否Safari浏览器
      var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判断Chrome浏览器
    
      if (isIE) {//如果为IE10及以下
        var reIE = new RegExp("MSIE (\d+\.\d+);");
        reIE.test(userAgent);
        var fIEVersion = parseFloat(RegExp["$1"]);//获得第一个捕获组的匹配值
        if(fIEVersion == 6){ 
          return "IE6";
        }else if(fIEVersion == 7){ 
          return "IE7";
        }else if(fIEVersion == 8){ 
          return "IE8";
        }else if(fIEVersion == 9){ 
          return "IE9";
        }else if(fIEVersion == 10){ 
          return "IE10";
        }else{ 
          return "0";
        }//IE版本过低
      }
    
      if (isFF) { return "Firefox";}
      if (isOpera) { return "Opera";}
      if (isSafari) { return "Safari";}
      if (isChrome) { return "Chrome";}
      if (isIE11) { return "IE11"}
      if (isEdge) { return "Edge";}
    }

    更多浏览器userAgent信息参考:http://www.360doc.com/content/12/1012/21/7662927_241124973.shtml

    userAgent各字段的含义解释参考:https://user-agents.me/useragent/mozilla40-compatible-msie-70-windows-nt-61-wow64-trident50-slcc2-net-clr-2050727-net-clr-3530729-net-clr-3030729-media-center-pc-60

  • 相关阅读:
    Redis常见7种使用场景(PHP)
    阻塞式I/O实现简单TCP通信
    telnet客户端程序
    TCP简单回射程序
    getsockname和getpeername函数
    close函数
    TCP时间获取程序
    listen函数
    基本套接字编程
    readline.c
  • 原文地址:https://www.cnblogs.com/youhong/p/7011155.html
Copyright © 2011-2022 走看看