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

Javascript 检测浏览器(可能的返回值),javascript,browser-detection,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) || [];

我确实找到了这个答案:

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”。但是我不知道如何在不安装浏览器的情况下测试其他浏览器

您可以安装其中一个插件,就像在不安装所有浏览器的情况下测试代码一样;然而,你可以安装一个插件来假装它实际上是一个不同的浏览器,这证明了你的方法不是绝对正确的

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


如果你在谷歌上搜索,你会发现其他Javascript库已经做到了这一点,但是如果你不担心用户通过插件更改userAgent属性,那么只需在服务器端读取请求中的“user Agent”标题,你就完成了

您是否知道“功能检测”通常被认为是比“浏览器检测”更好的选项?我需要浏览器检测统计数据。不是为了布局或类似的东西。我只需要浏览器的统计数据。如果可以更改用户代理,为什么还要麻烦呢?(严肃的问题)@yoshi我更新了我的答案。希望这能回答你的问题。底线是要100%准确地检测浏览器是非常棘手的。您展示的方法非常不可靠,其他使用功能检测的方法也不可靠,但程度较低。如果(strpos($\u SERVER['HTTP\u USER\u AGENT'],'Firefox')!==FALSE)$browser=“Firefox”,我可以在PHP中获得它