js中获取当前浏览器类型

Posted 香吧香

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中获取当前浏览器类型相关的知识,希望对你有一定的参考价值。

本文为博主原创,转载请注明出处:

       在应用POI进行导出时,先应用POI进行数据封装,将数据封装到Excel中,然后在进行download下载操作,从而完成

POI导出操作。由于在download操作时,会进行区别浏览器,并分别做适应才能导出。由于做的适应比较少,导致在IE浏览器

导出时,一直导出失败。

       最终发现在js中没有对IE进行识别适应,对其方法应用如下:

function getBrowserInfo() {
    var Sys = {};
    var ua = navigator.userAgent.toLowerCase();
    var re = /(msie|firefox|chrome|opera|version).*?([\d.]+)/;
    var m = ua.match(re);
    try{
        Sys.browser = m[1].replace(/version/, "‘safari");
        Sys.ver = m[2];
    }catch(e)
    {
        console.log("getBrowserInfo fail.")
    }
    return Sys;
}

以上方法在js中会进行识别,并返回对应的浏览器类型。

修改以后的方法如下:

function myBrowser() {
    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("Edge") > -1; //判断是否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版本过低
        return "IE";
    }
    if (isOpera) {
        return "Opera";
    }
    if (isEdge) {
        return "Edge";
    }
    if (isFF) {
        return "FF";
    }
    if (isSafari) {
        return "Safari";
    }
    if (isChrome) {
        return "Chrome";
    }
    
}

之后在后台进行浏览器进行适应,之后就可以导出成功了。

以上是关于js中获取当前浏览器类型的主要内容,如果未能解决你的问题,请参考以下文章

JS获取当前浏览器的类型

js检测浏览器类型

JS 获取当前操作系统类型,浏览器,终端类型的工具

两种js获取当前域名代码

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

js-权威指南学习笔记14