通过javascript比较浏览器版本

问题描述 投票:2回答:5

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

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

有什么办法吗?

javascript browser
5个回答
4
投票

此代码获取Firefox的版本号:

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

您决定如何处理每个人:

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

7
投票

您应该使用object/feature detection以确保在您应用之前​​有效。从该链接:

虽然浏览器检测对于90%的访问者来说效果都很好,但是一些不起眼的浏览器将无法正确处理,并且在您编写页面后出现的浏览器也可能无法充分覆盖。结果将是错误消息流或在浏览器可以轻松处理时未调用的脚本。在这两种情况下,您都在欺骗最终用户并且编码错误。

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

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

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,最后一个数字是版本。


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;
}

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
}
© www.soinside.com 2019 - 2024. All rights reserved.