Simple Modal因jQuery 1.8.0和IE9失败而出现错误:
SCRIPT438:Object不支持属性或方法'removeExpression'
以下小提示演示(记得与IE9一起运行)
http://jsfiddle.net/ericjohannsen/ZVEWa/1/
将jQuery切换为1.7.2会导致错误消失。
有办法解决这个问题吗?
可能相关(OP说问题出在jQuery 1.7.1& iframes上)
SimpleModal doesn't work in IE 9 (inside Iframe)
无关(jQuery 1.5问题)
答案 0 :(得分:44)
只是提供一个更新的答案(截至2013年8月2日),因为我在找到同样的错误时偶然发现了这篇文章......
正如salgiza在评论中指出的那样,jQuery 1.10发生了一些变化,导致对$.support.boxModel
的支持,这是最新版本的Simple Modal使用的。{/ p>
要解决此问题,您必须更改Simple Modal源代码中的以下行:
// (Line 239) $.support.boxModel is undefined if checked earlier
//browser.ieQuirks = browser.msie && !$.support.boxModel;
browser.ieQuirks = browser.msie && (document.compatMode === "BackCompat");
答案 1 :(得分:12)
似乎可以通过将$ .boxModel更改为$ .support.boxModel来解决此问题。您可以在http://github.com/ericmmartin/simplemodal获取更新版本。
我将尝试使用min版本获得完整打包的版本。
[edit] SimpleModal 1.4.3已released,应解决此问题
答案 2 :(得分:1)
出现与上面提到的相同的错误'对象不支持属性或方法'removeExpression''。 除了IE之外,所有浏览器中都会弹出模态窗口。 (使用文件jquery.simplemodal.js的非缩小版本1.4.3)
通过将try {} catch (e) {}
放在所有动态属性周围来修复它。
E.g。
try {
s.removeExpression('top');
}
catch (e) {
//The support for dynamic properties has been removed in Internet Explorer 9
}
模态窗口现在显示在所有浏览器中。
答案 3 :(得分:1)
“表达式”的功能检测可以解决问题,请查看我的修补程序:
https://github.com/ericmmartin/simplemodal/pull/34 https://github.com/redaxmedia/simplemodal/blob/master/src/jquery.simplemodal.js
答案 4 :(得分:0)
其他答案中建议的更新并未解决问题。该错误是由于IE9中没有removeExpression
和setExpression
这一事实。我通过注释掉任何使用任何表达式的东西来解决我的网站上的问题(我不关心IE6-7的兼容性)。