检测浏览器(可能的返回值)

时间:2014-06-09 23:26:58

标签: javascript browser-detection

我确实找到了这个答案:

function get_browser(){
        var ua=navigator.userAgent,tem,M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 
        if(/trident/i.test(M[1])){
            tem=/\brv[ :]+(\d+)/g.exec(ua) || []; 
            return 'IE '+(tem[1]||'');
            }   
        if(M[1]==='Chrome'){
            tem=ua.match(/\bOPR\/(\d+)/)
            if(tem!=null)   {return 'Opera '+tem[1];}
            }   
        M=M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
        if((tem=ua.match(/version\/(\d+)/i))!=null) {M.splice(1,1,tem[1]);}
        return M[0];
        }

    var br = get_browser();

但是我不确定所有可能的返回值是什么。我实际上只需要主浏览器。我测试了自己,对于Firefox浏览器,它是“Firefox”。但我不知道如何在不安装的情况下测试其他浏览器

1 个答案:

答案 0 :(得分:1)

您可以安装其中一个插件User Agent Switcher来测试您的代码,而无需安装所有浏览器;但是,您可以安装插件以使其相信它实际上是一个不同的浏览器,这一事实证明您的方法并非绝对可靠。

使用Modernizr是一种更好的方法,因为它使用了功能检测,但您仍需要编码哪些浏览器支持哪些功能。

如果您使用Google,您会发现其他Javascript库已经执行此操作,但如果您不关心用户通过插件更改userAgent属性,那么只需阅读" User-Agent"在服务器端的请求中的标头,你就完成了。