Extjs 3.3 IE8链式事件正在破裂

时间:2012-06-19 11:34:47

标签: javascript internet-explorer extjs internet-explorer-8 extjs3

这是有线的。

这是从网格工具栏按钮点击:

// fires when the client hits the add attachment button.
onAddAttachmentClick: function () {
    var uploadAttachmentsWindow = new Nipendo.ProformaInvoice.Attachment.UploadWindow({
        invoice: this.invoice,
        maxFileSizeInMB: this.maxFileSizeInMB
    });

    uploadAttachmentsWindow.on('uploadcomplete', function (win, message) {
        if (message.msg !== 'success') {
            return;
        }

        win.close();
        var store = this.getStore();

        store.setBaseParam('useCache', false);
        store.load();

        this.fireEvent(
            'attachmentuploaded',
            this.invoice.ProformaInvoiceNumber,
            this.invoice.VendorSiteID,
            this.invoice.CustomerSiteID);

    }, this);

    uploadAttachmentsWindow.show();
} // eo onAddAttachmentClick

这是uploadcomplete事件发生的事情:

this.uploadBtn.on('click', function () {
    var form = this.uploadForm.getForm();

    if (!form.isValid()) {
        return;
    }

    form.submit({
        url: 'XXX.ashx',
        waitMsg: Nipendo.Localization.UploadingAttachment,
        scope: this,
        success: function (form, action) {
            this.fireEvent('uploadcomplete', this, {
                msg: 'success',
                response: action.response
            });
        },
        failure: function (form, action) {
            switch (action.failureType) {
                case Ext.form.Action.CLIENT_INVALID:
                    this.fireEvent('uploadcomplete', this, {
                        msg: 'Form fields may not be submitted with invalid values'
                    });
                    break;
                case Ext.form.Action.CONNECT_FAILURE:
                    this.fireEvent('uploadcomplete', this, {
                        msg: 'Ajax communication failed'
                    });
                    break;
                case Ext.form.Action.SERVER_INVALID:
                    Ext.Msg.alert(action.result.title, action.result.message);
                    this.fireEvent('uploadcomplete', this, {
                        msg: action.result.message
                    });
                    break;
            }
        }
    });

}, this);

在IE 8上,我在调试器中收到此错误:

enter image description here

我不知道丢失了什么对象......从我的检查中他们都被定义了。

任何人都知道吗?

请注意,我有一个从侦听器触发的事件(我怀疑它是问题的根源)。

在fire方法中很难看到ext-all.js中的错误occuers。

1 个答案:

答案 0 :(得分:1)

我在https://stackoverflow.com/a/3584887/395890

找到了答案

问题是我列出的事件是2个不同的窗口,这在Ext。

中是不可能的

我所做的解决方法是从弹出窗口调用opner窗口来通知更改。