2013-06-19 1 views
0

Итак, некоторые пользователи сталкиваются с минимизацией своего окна браузера при нажатии кнопки «Сохранить» в этом модальном окне. Для этих пользователей это согласовано, но это всего лишь небольшое количество пользователей. Большинство людей используют IE9, и каждый, у кого есть эта проблема, использует IE9. Это происходит по вызову .dialog('close');, и он минимизирует до того, как он достигнет функции закрытия. У кого-нибудь есть идеи?JQuery Модальное закрытие сводит к минимуму окно для нескольких пользователей (в IE9)

$("#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(); 
      } 
     })); 
+0

Насколько я знаю, нет никакого способа, чтобы свернуть окно с JavaScript, так что это действительно странно. – bfavaretto

+0

Да, это то, о чем я думал. Это происходит только для нескольких человек, но для тех людей это одно и то же ... –

+0

Возможно, это какой-то браузерный плагин на этих машинах? – bfavaretto

ответ

0

Этот вопрос может иметь решение: Dynamically loading jQuery mobile causes IE to minimize

Походит вызов blur() заставляет окно IE к задней части стеки. Если вы используете jQuery Mobile, вот связанная с этим проблема: https://github.com/jquery/jquery-mobile/issues/2057

Если вы не используете jQuery Mobile, найдите в своем коде звонки blur().

+0

Кажется, это может быть связано. Я не использую jQuery Mobile, но у меня есть iframe. Это только две конкретные версии IE9, в которых это происходит, поэтому прямо сейчас мы говорим этим людям, чтобы они обновили свой браузер до последней версии IE9, и это исправление. –

0

Это место также можно найти в jquery-UI 1.10.0: http://bugs.jqueryui.com/ticket/9420.

Как следует из первого замечания, причиной является то, что blur() вызывается на document.body.

В качестве временного решения можно переопределить body.blur(), посмотреть на How do I disable body.blur() in IE8?

Смежные вопросы