【问题标题】:jQuery on IE8, error: Object doesn't support this property or methodIE8 上的 jQuery,错误:对象不支持此属性或方法
【发布时间】:2011-06-26 15:33:22
【问题描述】:

我有 jQuery 用于我正在构建的 WordPress 主题。我现在已经放弃了测试 IE6 和 IE7(布局地狱),现在我正在使用 IE8 测试它。每次我单击 prettyPhoto 链接或 jQuery 循环链接时,JS 都会发出此错误并且无法调出灯箱或移动滑块。像往常一样,他在所有其他浏览器中都能正常工作。

网站在http://themes.thefirm.gambit.ph

在 IE8 中,以及单击页眉区域的左箭头或右箭头时可以看到错误。

对象不支持该属性或方法

有人可以帮忙吗?有没有其他人遇到过这个?我对此感到很困惑,我在 Google 上找不到任何东西。

更新:我已经上传了网站并更新了这个问题

【问题讨论】:

  • rfxnum 中包含哪个值?
  • 你使用的图片是PNG图片吗?如果是,它们是否有一个 Alpha 通道和其中的一些透明部分? IE8 支持 PNG 透明度,但不支持不透明度,这可能是问题所在。
  • @David IE8 在不透明度下工作正常,甚至 IE6 也不会因为不透明度而出现 JS 错误。
  • @kirilloid 根据 IE 的开发工具,rfxnum 是一个值为 /^([+\-]=)?([\d+.\-]+)(.*)$ 的 Object / 使用方法 apply() 和 call()
  • @David 是的,我在页面中有 24 位 PNG 图像,但不是在 prettyPhoto 链接上或内部,这就是它如此奇怪的原因!这只是一个标准的

标签: javascript jquery css internet-explorer internet-explorer-8


【解决方案1】:

jQuery(缩小版)中导致错误的行是:

有些在第 140 行: var C=Bb.exec(u)

解决办法是把这一行改成:

var C=Bb.exec(u.toString())

@kirilloid 是正确的,因为 Regexp 会抛出错误,尤其是当匹配的值是数字时。 例如动画 css 属性,例如不透明度、顶部、左侧等。 将其转换为字符串可以解决问题。现在 IE 不再出现错误。

自从我编辑了 jQuery 库文件以来,我不太喜欢这个修复,但我想我将不得不解决它。更改不必对正常功能产生任何不良副作用。

【讨论】:

    【解决方案2】:

    我刚刚遇到了同样的问题。不要更改 jQuery(是的,我意识到它在短期内是一个不错的补丁),如果需要,请联系 Wordpress 插件/主题的作者或 Wordpress 自己。他们可以在调用 .animate() 或其他效果时使用字符串值而不是数值来解决问题。例如:

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

    应该是:

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

    实际上,jQuery 应该解决这个问题以保持跨浏览器,但同时它也是一个解决方案。

    【讨论】:

    • 谢谢大家,在阅读了这两个答案后,我修改了 JQuery Lightbox 0.5 以使用 toString 调用动画来解决 IE8 中的相同问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多