Javascript if语句与AND和OR

Javascript if statement with AND and OR

本文关键字:OR AND if 语句 Javascript      更新时间:2023-09-26

我使用jQuery的浏览器插件来检索浏览器名称和版本。无论如何,我试图显示一个消息,如果用户正在使用某个浏览器和/或某个版本。下面是我使用的:

if (($.browser.name == "msie" && $.browser.version <= "8.0") || $.browser.name == "safari" || $.browser.name == "opera") {
    // Do something
}

这一切工作正常,除了错误显示在IE9,它不应该。我希望它只显示,如果它的版本8.0或更低。这种说法有什么问题?

提前感谢。

EDIT:我现在使用的是$.browser。versionNumber,但它仍然不起作用。这样的:

if (($.browser.name == "msie" && $.browser.versionNumber <= "8") || $.browser.name == "safari" || $.browser.name == "opera") {
    // Do something
}

.browser美元。versionNumber检索一个数字。在这种情况下,如果我使用IE9,它会发送"9"。

如前所述,在字符串上没有定义<=操作符。

有一个<=操作符在字符串上,但它不是你需要的。例如:

alert('2' <= '10'); // this yields false.
解决方案是使用$.browser.versionNumber:

浏览器。versionNumber:浏览器的版本(注意,为整数)。

:

if (($.browser.name == "msie" && $.browser.versionNumber <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
    // Do something
}

注意比较字符串和比较数字会得到不同的结果

  $.browser.version <= "8.0"
例如

  "10.0" < "8.0"

也许您只对主版本号感兴趣,那么您可以使用parseInt来提取它。

IE9是否在您的网站上以兼容和/或怪癖模式运行?

你不应该在字符串上使用"<=":

if (($.browser.name == "msie" && $.browser.version <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}