使用 javascript 确定正在使用的浏览器

问题描述 投票:0回答:7

我在确定浏览器时遇到问题。

我尝试过使用

navigator
,但是没有帮助。

我使用

alert(navigator.appName);
来确定浏览器,我当前正在使用
Google Chrome
,当弹出窗口出现时,它显示
Mozilla
,但在
Mozilla
中,它工作正常,并且与
Mozilla
一起工作。

代码有问题吗?还是有什么bug?

javascript html
7个回答
6
投票
navigator.sayswho= (function(){
    var N= navigator.appName, ua= navigator.userAgent, tem,
    M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*([\d\.]+)/i);
    if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
    M= M? [M[1], M[2]]:[N, navigator.appVersion, '-?'];
    return M.join(' ');
})();

alert(navigator.sayswho)

5
投票

它接近 chrome,如果您需要一个简单的简短解决方案,请尝试使用这个:

function getBrowser() {
  if( navigator.userAgent.indexOf("Chrome") != -1 ) {
    return "Chrome";
  } else if( navigator.userAgent.indexOf("Opera") != -1 ) {
    return "Opera";
  } else if( navigator.userAgent.indexOf("MSIE") != -1 ) {
    return "IE";
  } else if( navigator.userAgent.indexOf("Firefox") != -1 ) {
    return "Firefox";
  } else {
    return "unknown";
  }
}

2
投票

回答你的问题,不,没有问题或错误。 Chrome 将自己描述为 Mozilla。有关 Chrome 提供的确切用户代理字符串,请参阅此内容。

http://www.useragentstring.com/pages/useragentstring.php?name=Chrome

以下是一些示例:

Chrome 20.0.1092.0

Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/536.6(KHTML,如 Gecko)Chrome/20.0.1092.0 Safari/536.6

Chrome 20.0.1090.0

Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6(KHTML,如 Gecko)Chrome/20.0.1090.0 Safari/536.6


0
投票

这里有一个非常好的 js 文件的链接,应该可以回答您的所有问题:

http://www.quirksmode.org/js/detect.html


0
投票

尝试

navigator.appVersion
,应该更具体。


0
投票

浏览器嗅探 wikipedia MDC 不被认为是一个好的做法。如果有新的浏览器未公开发布怎么办?检测应该针对功能而不是浏览器。浏览器可能会改变、变得过时,但功能是持久的。

只是为了完整性和冒险精神 - 有一种方法可以测试特定的 JavaScript 对象:

isChrome = function() { return !!(window.chrome);}
isOpera = function() { return !!(window.opera);}

对于 IE,有一个神奇的东西,称为条件编译 SO Question 以及有关它的材料 MSDN JSkit


0
投票
navigator.userAgentData.brands[0].brand

这将为您提供浏览器名称。

© www.soinside.com 2019 - 2024. All rights reserved.