最近Amazon.com更新了他们的JavaScript代码,导致部分Opera浏览器出现问题。
他们的浏览器检测代码如下,但存在缺陷:
function sitbReaderIsCompatibleBrowser() {
if (typeof(jQuery) == 'undefined') {
return false;
} else {
var version = jQuery.browser.version || "0";
var splitVersion = version.split('.');
return (
(jQuery.browser.msie && splitVersion[0] >= 6) // IE 6 and higher
|| (jQuery.browser.mozilla && (
(splitVersion[0] == 1 && splitVersion[1] >= 8) // Firefox 2 and higher
|| (splitVersion[0] >= 2)
))
|| (jQuery.browser.safari && splitVersion[0] >= 500) // Safari 5 and higher
|| (jQuery.browser.opera && splitVersion[0] >= 9) // Opera 5 and higher
);
}
}
这段代码中没有明显的错误,但我以前从未使用过jQuery,因此不确定。
尽管该代码看起来像是试图让Opera用户通过,但当我使用Opera 9.64访问该页面时,会收到一个“不支持的浏览器”消息。如果我更改Opera的设置,将其报告为Firefox,则页面可以正常工作!考虑到这一点,我相信这是脚本的问题,而不是浏览器的问题。
有任何jQuery专家有建议吗?
你可以通过访问亚马逊上的任何一本书并单击“查看此书内部”链接来复制此行为。