JQuery Modal close минимизирует окно для нескольких пользователей (в IE9)
Так, некоторые пользователи испытывают сворачивание окна своего браузера, когда они нажимают сохранить в этом модальном окне. Для тех пользователей это согласованно, но это всего лишь небольшое количество пользователей. Большинство людей используют 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();
}
}));
2 ответа
Это также было найдено в jquery-UI 1.10.0: http://bugs.jqueryui.com/ticket/9420.
Как следует из первого комментария, причина в том, что blur()
вызывается на document.body.
В качестве обходного пути вы можете переопределить body.blur()
Посмотрите, как отключить body.blur() в IE8?
Этот вопрос может иметь решение: динамическая загрузка jQuery mobile приводит к минимизации IE
Похоже на звонок blur()
вынуждает окно IE к задней части стека. Если вы используете jQuery Mobile, вот связанная проблема: https://github.com/jquery/jquery-mobile/issues/2057
Если вы не используете jQuery Mobile, ищите звонки blur()
в вашем коде.