0

因此,一些用户在单击此模式窗口上的保存时会遇到浏览器窗口最小化的情况。对于那些用户来说,它是一致的,但它只是一小部分用户。大多数人都在使用 IE9,每个有这个问题的人都在使用 IE9。它发生在.dialog('close');通话中,并在到达关闭功能之前最小化。有没有人有任何想法?

$("#new-specified").dialog($.extend({}, ns.modalOptions, {
            open: function () {
                if (ns.disabled) {
                    $(this).dialog("close");
                }
                $(this).dialog("option", "title", app.viewModels.MissionViewModel.EditingSpecified() ? "EDIT SPECIFIED TASK" : "NEW SPECIFIED TASK");
                $(this).parent().find("button:contains('Cancel')").removeClass().addClass("cancel-button");
                $(this).parent().find("button:contains('SAVE')").removeClass().addClass("save-button");
                app.viewModels.MissionViewModel.CurrentSpecified().TempDescription(app.functions.htmlUnescape(app.viewModels.MissionViewModel.CurrentSpecified().Description()));
                if (app.viewModels.MissionViewModel.SpecifiedTasks().length === 0) {
                    app.viewModels.MissionViewModel.CurrentSpecified().IsMainEffort(true);
                }
            },
            buttons: {
                "Cancel": function() {
                    $(this).dialog("close");
                },
                "SAVE": function () {
                    var newSpecified = app.viewModels.MissionViewModel.CurrentSpecified();
                    newSpecified.Description(app.functions.htmlEscape(newSpecified.TempDescription()));
                    newSpecified.Validate();
                    if (newSpecified.IsInError()) {
                        return;
                    }
                    if (!app.viewModels.MissionViewModel.EditingSpecified()) {
                        app.viewModels.MissionViewModel.SpecifiedTasks.push(newSpecified);
                    } else {
                        app.viewModels.MissionViewModel.OldSpecified().CopyFrom(newSpecified);
                        newSpecified = app.viewModels.MissionViewModel.OldSpecified();
                    }

                    app.viewModels.MissionViewModel.CurrentSpecified(new app.models.SpecifiedTaskViewModel());
                    var isMainEffort = newSpecified.IsMainEffort();
                    var index = isMainEffort ? app.viewModels.MissionViewModel.SpecifiedTasks().indexOf(newSpecified) : -1;
                    app.viewModels.MissionViewModel.VerifyMainEffort(index);
                    ns.setupSpecifiedModal();
                    //VV This line below minimizes
                    $(this).dialog("close");
                    ns.setupDroppable();
                }
            },
            close: function() {
                // We don't reach here before the window minimizes
                app.viewModels.MissionViewModel.CurrentSpecified(new app.models.SpecifiedTaskViewModel());
                app.viewModels.MissionViewModel.EditingSpecified(false);

                app.viewModels.MissionViewModel.VerifyMainEffort(-1);
                ns.saveMissionToServer();
            }
        }));
4

2 回答 2

0

这也在 jquery-UI 1.10.0 中找到:http: //bugs.jqueryui.com/ticket/9420

正如第一条评论所暗示的,原因是blur()在 document.body 上调用。

作为您可以覆盖的解决方法body.blur(),请查看如何在 IE8 中禁用 body.blur()?

于 2013-09-02T15:19:27.450 回答
0

这个问题可能有解决方案:动态加载jQuery移动导致IE最小化

似乎调用blur()强制 IE 窗口到堆栈的后面。如果您使用的是 jQuery Mobile,这里是相关问题:https ://github.com/jquery/jquery-mobile/issues/2057

如果您没有使用 jQuery Mobile,请blur()在您的代码中查找调用。

于 2013-07-23T18:46:39.030 回答