通过JS判断浏览器类型,详细区分IE各版本浏览器

来源:互联网 发布:沉戟酥油饼txt知乎 编辑:程序博客网 时间:2024/05/22 02:16


    /*     * 描述:判断浏览器信息     * 编写:LittleQiang_w     * 日期:2016.1.5     * 版本:V1.1     */    //判断当前浏览类型    function BrowserType()    {        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串        var isOpera = userAgent.indexOf("Opera") > -1; //判断是否Opera浏览器        var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器        var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器        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)         {             var reIE = new RegExp("MSIE (\\d+\\.\\d+);");             reIE.test(userAgent);             var fIEVersion = parseFloat(RegExp["$1"]);             if(fIEVersion == 7)             { return "IE7";}             else if(fIEVersion == 8)             { return "IE8";}             else if(fIEVersion == 9)             { return "IE9";}             else if(fIEVersion == 10)             { return "IE10";}             else if(fIEVersion == 11)             { return "IE11";}             else             { return "0"}//IE版本过低         }//isIE end                  if (isFF) {  return "FF";}         if (isOpera) {  return "Opera";}         if (isSafari) {  return "Safari";}         if (isChrome) { return "Chrome";}         if (isEdge) { return "Edge";}     }//myBrowser() end          //判断是否是IE浏览器     function isIE()     {        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串        var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器        if(isIE)        {            return "1";        }        else        {            return "-1";        }     }               //判断是否是IE浏览器,包括Edge浏览器     function IEVersion()     {        var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串        var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判断是否IE浏览器var isEdge = userAgent.indexOf("Windows NT 6.1; Trident/7.0;") > -1 && !isIE; //判断是否IE的Edge浏览器        if(isIE)        {             var reIE = new RegExp("MSIE (\\d+\\.\\d+);");             reIE.test(userAgent);             var fIEVersion = parseFloat(RegExp["$1"]);             if(fIEVersion == 7)             { return "IE7";}             else if(fIEVersion == 8)             { return "IE8";}             else if(fIEVersion == 9)             { return "IE9";}             else if(fIEVersion == 10)             { return "IE10";}             else if(fIEVersion == 11)             { return "IE11";}             else             { return "0"}//IE版本过低        }else if(isEdge){return "Edge";}        else        {            return "-1";//非IE        }     }

以上代码通过测试,可用!

        但存在一个问题,即IE5与IE7浏览器暂不能区分,以下是IE5与IE7下userAgent的信息;通过userAgent发现,简单的通过以上方法,无法正确区分IE5和IE7。期待该问题的解决方案!!!

     IE5: userAgent   "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)"


     IE7: userAgent  "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.2; .NET4.0E)"




1 0
原创粉丝点击