Simple Modal, jQuery 1.8.0 and IE9

泪湿孤枕 提交于 2019-12-20 09:18:53

问题


Simple Modal fails with jQuery 1.8.0 and IE9 with the error:

SCRIPT438: Object doesn't support property or method 'removeExpression'

The following fiddle demonstrates (remember to run with IE9)

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

Switching jQuery to 1.7.2 causes the error to go away.

Is there a way to work around this?

Possibly Related (OP says the issue was with jQuery 1.7.1 & iframes)

SimpleModal doesn't work in IE 9 (inside Iframe)

Unrelated (jQuery 1.5 issue)

Problems with simple modal in IE9


回答1:


It appears that the issue can be resolved by changing $.boxModel to $.support.boxModel. You can grab an updated version at http://github.com/ericmmartin/simplemodal.

I will try and get a fully packaged release, with min version, out shortly.

[edit] SimpleModal 1.4.3 has been released and should resolve this issue




回答2:


Just to provide an updated answer (as of 8/2/2013), since I stumbled across this post while hunting down the very same bug...

As salgiza pointed out above in a comment, there's been a change in jQuery 1.10 that drops support for $.support.boxModel, which the latest version of Simple Modal uses.

To resolve this issue, you must change the following line in the Simple Modal source code:

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



回答3:


Had the same error as mentioned above 'Object doesn't support property or method 'removeExpression''. The modal window popped up in all browsers except IE. (Using non-minified version 1.4.3 of file jquery.simplemodal.js)

Fixed it by putting try {} catch (e) {} around all dynamic properties.

E.g.

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

The modal window shows in all browsers now.




回答4:


A feature detection for "Expression" does the trick, check out my hotfix:

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




回答5:


The update suggested in the other answer didn't fix the problem. The error is due to the fact that removeExpression and setExpression aren't available in IE9. I fixed the issue on my site by commenting out anything that used either expression (I don't care about IE6–7 compatibility).



来源:https://stackoverflow.com/questions/12046242/simple-modal-jquery-1-8-0-and-ie9

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!