-->

SimpleModal doesn't work in IE 9 (inside Ifram

2020-07-16 08:29发布

问题:

I'm getting following error when using IE 9 (Chrome and FireFox works great):

SCRIPT438: Object doesn't support property or method 'removeExpression' jquery.simplemodal.1.4.2.min.js, line 16 character 133

Simple Modal is called inside Iframe. jQuery.min (1.7.1) is included before SimpleModal (1.4.2) in the Iframe.

The code responsible for showing modal dialog:

function OpenContextByClass(cssClass, posY, posX) {
    var winHeight = $(window).height();
    var winWidth = $(window).width();

    $('.' + cssClass).modal({
        overlayClose: true,
        position: [posY, posX],
        appendTo: 'form',
        onOpen: function (dialog) { dialog.overlay.fadeIn('fast', function () { dialog.container.slideDown('fast', function () { dialog.data.fadeIn('fast'); }); }); },
        onShow: function (d) {
            var self = this;
            self.container = d.container[0];
            var title = $('.' + cssClass, self.container);
            title.show();
            $('.' + cssClass, self.container).show();

            setTimeout(function () {
                var currentPositionX = posX;
                var currentPositionY = posY;
                var currentWidth = $('.' + cssClass, self.container).width() + 50;
                var currentHeight = $('.' + cssClass, self.container).height() + 50;
                posY = (currentPositionY + currentHeight) < winHeight ? currentPositionY : (winHeight - currentHeight);
                posX = (currentPositionX + currentWidth) < winWidth ? currentPositionX : (winWidth - currentWidth);

                d.container.animate(
                                { left: posX, top: posY },
                                500,
                                function () {
                                    $('.' + cssClass, self.container).show();
                                }
                            );
            }, 550);
        }
    });
}

回答1:

I have got the same problem. And I found this article: http://help.dottoro.com/ljuvxilu.php

The support for dynamic properties has been removed in Internet Explorer 9, so none of the getExpression, removeExpression, setExpression and recalc methods are supported. These methods exist in version 8, but using them raises exceptions.