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

时间:2012-05-08 20:26:38

标签: javascript html

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

我尝试使用navigator,但是没有用。

我使用alert(navigator.appName);来确定浏览器,我当前正在使用Google Chrome,当弹出窗口显示Mozilla时,但在Mozilla它可以正常使用Mozilla自我。

代码有问题吗?或者是一些错误?

6 个答案:

答案 0 :(得分:7)

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)

答案 1 :(得分:3)

它接近于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 :(得分: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

答案 3 :(得分:0)

尝试navigator.appVersion,它应该更具体。

答案 4 :(得分:0)

这是一个非常好的js文件的链接,可以回答你的所有问题:

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

答案 5 :(得分:0)

浏览器嗅探wikipedia MDC并不是一种好习惯。如果有新的浏览器,而不是公开可用,该怎么办?检测应该是针对功能而不是浏览器。浏览器可能会发生变化,过时,功能也会持续存在。

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

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

对于IE,有一个神奇的东西叫做条件编译SO Question和关于它的材料MSDN JSkit