通过javascript比较浏览器版本

时间:2010-05-10 13:38:37

标签: javascript browser

如何通过javascript比较浏览器版本?

例如,如果脚本想知道用户是否正在使用Firefox 3.5 +

有什么办法吗?

5 个答案:

答案 0 :(得分:7)

在应用之前,您应该使用object/feature detection来确保某些内容有效。从那个链接:

  

虽然浏览器检测效果很好   足够90%的访问者,一些   晦涩的浏览器将不会被处理   正确和出现的浏览器   你写完页面后可能没有   也应充分覆盖。该   结果将是一个流   错误消息或不是的脚本   在浏览器轻松调用时调用   处理它。在这两种情况下,你都是   欺骗你的最终用户和编码   不正确。

要获取浏览器版本,您可以使用Navigator object

alert(navigator.appName + ' ' + navigator.appVersion);

答案 1 :(得分:4)

此代码获取Firefox的版本号:

var FFVersion = navigator.userAgent
                  .substring(navigator.userAgent.indexOf("Firefox"))
                  .split("/")[1];

您决定如何处理每一项:

window.onload = function() {
    if (FFVersion < '3.5') { alert('please upgrade...') }
}

答案 2 :(得分:1)

在javascript中使用navigator.userAgent

你会得到一个像“Mozilla / 5.0(Windows; U; Windows NT 6.1; en-GB; rv:1.9.2)Gecko / 20100115 Firefox / 3.6”这样的字符串

对于firefox,最后一个数字是版本。

答案 3 :(得分:0)

现在Firefox失败了10.0。想出一个不同的版本:

// Takes 2 strings "2.3.4.5" and "2.5" and returns less, equal and greater than 0
// depending which one is bigger
function compareVersions(a, b) {
  var v1 = a.split('.');
  var v2 = b.split('.');
  for(var i = 0; i < Math.min(v1.length, v2.length); i++) {
    var res = v1[i] - v2[i];
    if (res != 0)
      return res;
  }
  return 0;
}

答案 4 :(得分:0)

将版本字符串解析为float类型,然后将它们与if语句或您想要的任何内容进行比较 以下是我用于检查IE浏览器版本的示例:

if(parseFloat($.browser.version) <= 8.0)
{
    // Do whatever you want if browser version lower than equal to 8.0
}
else
{
    // Do whatever you want if browser greater than 8.0
}