Ошибка JavaScript при попытке открыть модальное окно в модальном окне - PullRequest
6 голосов
/ 15 апреля 2010

Приложение работает на Windows Server 2003 box с использованием asp.net 2.0 и является веб-приложением для IE. Есть кнопка, которая открывает форму в iframe с помощью showModalDialog (...) из вызова функции, расположенного в JavaScript.

Вот пример функции:

    function ShowBusinessHoursSubForm( source )
{
    var retval = window.showModalDialog("htm/" + locLocaleID + "/SubFormHostFrame.htm", source, "dialogWidth:265px;dialogHeight:261px;help:no;scroll:no;status:no;");

}

Фрейм хоста загружает страницу aspx, которая содержит текущую используемую форму. В открывшейся форме есть кнопка, которая при нажатии отправляет изменения в форму. Однако, если не было внесено никаких изменений до того, как форма была отправлена, появляется другое модальное окно, сообщающее, что в форме не было никаких изменений. Это модальное окно открывается путем регистрации некоторого JavaScript в событии нажатия кнопки. Код выглядит следующим образом (C #):

string l_S_ErrorScript = "<script type='text/javascript' language='javascript'>window.showModalDialog('htm/" + l_S_Culture + "/NotChangedErrorDialog.htm', '../../" + l_S_SkinPath + "', 'dialogWidth:310px;dialogHeight:145px;scroll:no;help:no;status:no;');</script>";

if(!m_Page.ClientScript.IsStartupScriptRegistered("ErrorScript"))
        {
            m_Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorScript", l_S_ErrorScript);
        }

Когда кнопка нажата, и это диалоговое окно должно появиться, появляется следующая ошибка JavaScript:

Ошибка: объект не поддерживает это свойство или метод

Странная вещь, если я получаю доступ к приложению локально и пробую его, все работает нормально, но доступ с другого компьютера вызывает ошибку. Кроме того, в зависимости от того, какой сервер (у нас есть много серверов для тестирования всех с Windows Server 2003), ошибка может не возникать и на другом компьютере. На этих компьютерах установлена ​​одна и та же версия программного обеспечения с использованием одной и той же версии IE с одинаковыми настройками. Я склонен полагать, что где-то есть проблемы с конфигурацией, но при одинаковых настройках трудно сказать. Я не могу изменить то, как работает приложение или используемые технологии.

У кого-нибудь есть идеи относительно того, что может быть причиной этого?

1 Ответ

9 голосов
/ 15 апреля 2010

Проблема была с блокировщиком всплывающих окон в IE на клиентском компьютере. Поскольку модальное окно открывалось в другом модальном окне, блокировщик всплывающих окон не считал его частью родительского и считает, что должен его заблокировать. После добавления сайта в блокировщик всплывающих окон все заработало.

Как смешно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...