我确实找到了这个答案:
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”。但我不知道如何在不安装的情况下测试其他浏览器
答案 0 :(得分:1)
您可以安装其中一个插件User Agent Switcher来测试您的代码,而无需安装所有浏览器;但是,您可以安装插件以使其相信它实际上是一个不同的浏览器,这一事实证明您的方法并非绝对可靠。
使用Modernizr是一种更好的方法,因为它使用了功能检测,但您仍需要编码哪些浏览器支持哪些功能。
如果您使用Google,您会发现其他Javascript库已经执行此操作,但如果您不关心用户通过插件更改userAgent属性,那么只需阅读" User-Agent"在服务器端的请求中的标头,你就完成了。