简单的Modal,jQuery 1.8.0和IE9

Eri*_* J. 15 jquery simplemodal

简单模态失败,jQuery 1.8.0和IE9出错:

SCRIPT438:对象不支持属性或方法'removeExpression'

以下小提琴演示(记得用IE9运行)

http://jsfiddle.net/ericjohannsen/ZVEWa/1/

将jQuery切换到1.7.2会导致错误消失.

有办法解决这个问题吗?

可能相关(OP说问题是jQuery 1.7.1和iframe)

SimpleModal在IE 9中不起作用(在iframe内部)

不相关(jQuery 1.5问题)

IE9中简单模态的问题

nlh*_*nlh 44

只是提供一个更新的答案(截至2013年8月2日),因为我在找到同样的错误时偶然发现了这篇文章...

正如salgiza在评论中指出的那样,jQuery 1.10中的一个变化$.support.boxModel导致了对Simple Modal的最新版本使用的支持的下降.

若要解决此问题,您必须更改Simple Modal源代码中的以下行:

        // (Line 239) $.support.boxModel is undefined if checked earlier
        //browser.ieQuirks = browser.msie && !$.support.boxModel;
        browser.ieQuirks = browser.msie && (document.compatMode === "BackCompat");
Run Code Online (Sandbox Code Playgroud)

  • 在缩小版本中,我将`!b.support.boxModel`替换为`(document.compatMode ==="BackCompat")`并且它有效.非常感谢! (19认同)
  • 这个插件还没有更新,真是太遗憾了.感谢您提供修复程序. (2认同)

Eri*_*tin 12

似乎可以通过将$ .boxModel更改为$ .support.boxModel来解决此问题.您可以在http://github.com/ericmmartin/simplemodal上获取更新版本.

我将尝试使用min版本获得完整打包的版本.

[edit] SimpleModal 1.4.3已经发布,应该可以解决这个问题

  • Eric,$ .support.boxModel已经从jQuery 1.10中删除了http://bugs.jquery.com/ticket/13743 - 如前所述,它可以通过检查document.compatMode ==="BackCompat"来代替(我必须这样做是为了能够使用那个jquery版本的simplemodal) (6认同)
  • 使用simplemodal 1.4.4和jQuery 1.10.1时发生了同样的错误. (6认同)