Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQueryModalClose最小化了少数用户的窗口(在IE9中)_Javascript_Jquery_Internet Explorer 9_Jquery Ui Dialog - Fatal编程技术网

Javascript jQueryModalClose最小化了少数用户的窗口(在IE9中)

Javascript jQueryModalClose最小化了少数用户的窗口(在IE9中),javascript,jquery,internet-explorer-9,jquery-ui-dialog,Javascript,Jquery,Internet Explorer 9,Jquery Ui Dialog,因此,当一些用户在该模式窗口上单击“保存”时,他们的浏览器窗口正在最小化。对于那些用户来说,这是一致的,但只是一小部分用户。大多数人都在使用IE9,而每个有这个问题的人都在使用IE9。它发生在对话框('close')调用,并在到达关闭函数之前最小化。有人有什么想法吗 $("#new-specified").dialog($.extend({}, ns.modalOptions, { open: function () { if (ns.di

因此,当一些用户在该模式窗口上单击“保存”时,他们的浏览器窗口正在最小化。对于那些用户来说,这是一致的,但只是一小部分用户。大多数人都在使用IE9,而每个有这个问题的人都在使用IE9。它发生在
对话框('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();
            }
        }));

这个问题可能有解决办法:

似乎调用
blur()
会强制IE窗口位于堆栈的后面。如果您使用的是jQuery Mobile,以下是相关问题:


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

这也可以在jQuery UI 1.10.0中找到:

正如第一条评论所指出的,原因是在document.body上调用了
blur()


作为一种解决方法,您可以覆盖
body.blur()
,看看

,据我所知,没有办法从JavaScript最小化窗口,所以这真的很奇怪。是的,我也是这么想的。这种情况只发生在少数人身上,但对于那些人来说,情况始终是一样的……也许是那些机器上的某个浏览器插件?这似乎与此相关。我没有使用jQuery Mobile,但我有一个iframe。这只是IE9的两个特定版本,所以现在我们只是告诉那些人将他们的浏览器升级到IE9的最新版本,这就解决了问题。