15

Simple Modal 使用 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中简单模态的问题

4

5 回答 5

44

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

正如salgiza 在上面的评论中指出的那样,jQuery 1.10 发生了一个变化,它放弃了$.support.boxModel对 Simple Modal 最新版本所使用的 . 的支持。

要解决此问题,您必须更改简单模式源代码中的以下行:

        // (Line 239) $.support.boxModel is undefined if checked earlier
        //browser.ieQuirks = browser.msie && !$.support.boxModel;
        browser.ieQuirks = browser.msie && (document.compatMode === "BackCompat");
于 2013-08-02T17:31:32.783 回答
12

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

我将尝试很快发布一个完整打包的版本,带有最小版本。

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

于 2012-08-26T02:20:06.677 回答
1

有与上面提到的相同的错误“对象不支持属性或方法'removeExpression'”。模式窗口在除 IE 之外的所有浏览器中都弹出。(使用文件 jquery.simplemodal.js 的非缩小版本 1.4.3)

try {} catch (e) {}通过放置所有动态属性来修复它。

例如

try {
  s.removeExpression('top');
}
catch (e) {
  //The support for dynamic properties has been removed in Internet Explorer 9
}

模态窗口现在显示在所有浏览器中。

于 2012-12-20T11:27:12.360 回答
1

“表达式”的功能检测可以解决问题,请查看我的修补程序:

https://github.com/ericmmartin/simplemodal/pull/34 https://github.com/redaxmedia/simplemodal/blob/master/src/jquery.simplemodal.js

于 2013-07-10T15:14:07.400 回答
0

另一个答案中建议的更新没有解决问题。该错误是由于在 IE9removeExpressionsetExpression不可用。我在我的网站上通过注释掉任何使用这两种表达方式的东西来解决这个问题(我不关心 IE6-7 的兼容性)。

于 2012-09-05T01:22:25.393 回答