jQuery在IE8上出错:对象不支持此属性或方法。

4
我正在构建一个WordPress主题,使用jQuery。我已经放弃测试IE6和IE7(布局混乱),现在正在使用IE8进行测试。每次我点击prettyPhoto链接或jQuery循环链接时,JS都会出现此错误,并且无法显示灯箱或移动滑块。像往常一样,在所有其他浏览器中都可以正常工作。
该网站位于http://themes.thefirm.gambit.ph
当在IE8中单击标题区域的左右箭头时,您可以看到错误。
“对象不支持此属性或方法”
有人能帮忙吗?还有人遇到过这种情况吗?我对此感到困惑,无法从Google中找到任何信息。
更新:我已经上传了网站并更新了这个问题。

rfxnum 包含哪个值? - kirilloid
@David IE8对不透明度的支持良好,即使是IE6也不会因为不透明度而出现JS错误。 - kirilloid
根据IE的开发工具,rfxnum是一个对象,其值为/^([+-]=)?([\d+.-]+)(.*)$/,并带有apply()和call()方法。@kirilloid - Benjamin Intal
@David 是的,页面上有24位的PNG图像,但不在或内置于prettyPhoto链接中,这就是为什么如此奇怪的原因!它只是一个标准的{{link1:<img src="jpg"/>}}。 - Benjamin Intal
@kirilloid 尝试过了,出现了相同的错误。 - Benjamin Intal
显示剩余2条评论
2个回答

2

我刚碰到了同样的问题。不要修改jQuery(是的,我知道这在短期内是一种不错的补丁),而应联系WordPress插件/主题的作者或WordPress本身(如果需要)。他们可以通过在调用.animate()或其他效果时使用字符串值来修复此问题。例如:

$(this).animate({opacity:0.5},500);

应该是:

$(this).animate({opacity:"0.5"},"500");

实际上,jQuery 应该解决这个问题以保持跨浏览器兼容性,但在此期间这是一种解决方案。


谢谢大家,我修改了JQuery Lightbox 0.5,在阅读了这两个答案后,使用toString调用animate来解决在IE8中出现的同样问题。 - Dr. Andrew Burnett-Thompson

2
在jQuery(压缩版本)中导致错误的行是:
在第140行某个地方: var C=Bb.exec(u)
解决方法是将此行更改为:
var C=Bb.exec(u.toString())
@kirilloid正确指出正则表达式在匹配数字值时会引发错误,例如动画CSS属性,如不透明度、顶部、左侧等。将其转换为字符串可以解决问题。现在IE不再出现任何错误。
我不太喜欢这个修复方法,因为我编辑了jQuery库文件,但我想我必须使用它。更改对正常功能没有任何负面影响。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接