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