我正在使用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”。
答案 0 :(得分:3)
请注意,比较字符串会产生与比较数字不同的结果
$.browser.version <= "8.0"
例如
"10.0" < "8.0"
也许您只对主要版本号感兴趣,然后您可以使用parseInt来提取它。
答案 1 :(得分:3)
正如其他人已经说过的那样,字符串上没有定义 <=
运算符。
字符串上有一个<=
运算符,但它不是您需要的运算符。例如:
alert('2' <= '10'); // this yields false.
解决方案是使用$.browser.versionNumber
:
browser.versionNumber:浏览器的版本(注意,作为整数)。
像这样:
if (($.browser.name == "msie" && $.browser.versionNumber <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}
答案 2 :(得分:0)
IE9是否在您的网站上以兼容性和/或怪异模式运行?
这可能会误导插件认为您运行的是旧版本。
答案 3 :(得分:-1)
你不应该在字符串上使用“&lt; =”:
if (($.browser.name == "msie" && $.browser.version <= 8) || $.browser.name == "safari" || $.browser.name == "opera") {
// Do something
}