我正在使用 jQuery 的浏览器插件来检索浏览器名称和版本。无论如何,如果用户使用特定浏览器和/或特定版本,我会尝试显示一条消息。这是我正在使用的:
if (($.browser.name == "msie" && $.browser.version <= "8.0") || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}
一切工作正常,除了 IE9 中显示错误之外,这是不应该的。我希望它仅在版本 8.0 或更低版本时显示。这句话有什么问题吗?
提前致谢。
编辑:我现在使用 $.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
:
browser.versionNumber: The version of the browser (note, as an integer).
像这样:
if (($.browser.name == "msie" && $.browser.versionNumber <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}
关于带有 AND 和 OR 的 JavaScript if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16383859/