Странное поведение при открытии всплывающего окна в Internet Explorer

StackOverflow https://stackoverflow.com/questions/261978

Вопрос

У меня есть следующий JavaScript-код для открытия окна в Internet Explorer.Код выполняется со страницы в модальном диалоговом окне Microsoft CRM.(RequestID - это строка, которая всегда одинакова в тестовой системе - на данный момент она содержит "abcdefg" - без кавычек).

var cancelUrl = "CancelRequest.aspx?RequestID=" + RequestID;
alert("About to open a window.\n\n" + cancelUrl);
window.open(cancelUrl);
alert("Window opened");

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

У меня есть два компьютера и виртуальный компьютер.Все они работают под управлением IE7.В Windows 2003 VPC сообщения и всплывающие окна появляются каждый раз в обязательном порядке.

На ПК с Vista и WinXP сообщения появляются, но всплывающее окно появляется только с перерывами.(Я думаю, что это может иметь место и на ПК с Vista).

Все три имеют идентичные настройки в IE.У всех отключен блокировщик всплывающих окон IE и не установлены другие блокировщики всплывающих окон.

Кто-нибудь может пролить на это какой-нибудь свет?

Это было полезно?

Решение

Ах, я думаю, я понял ... пропустил это в описании ...

Вы пытаетесь открыть немодальное окно из модального диалогового окна в IE .

Этот AFAIK не должен работать.

Попробуйте вместо этого открыть другое модальное окно.

По сути, вы говорите ...

в окне A, откройте модальное окно B, теперь откройте немодальное окно C, которое на самом деле недопустимо.

Другие советы

Этот код прост.Используйте отладчик и посмотрите, что происходит.

Проверьте этот сайт в FireFox или Chrome, у них есть JS-отладчики.

Редактировать:

Добавьте блок try / catch вокруг window.open() и посмотрите, есть ли там какое-то исключение.

Правка 2:

Теперь я вижу, что вы отправляете символы в качестве RequestID.Вам следует проверить, может ли этот URL обрабатывать такого рода значения.Поскольку имя - это RequestId Я бы сказал, что есть большая вероятность, что там должен быть только числовой параметр.Если это правильно, то может случиться так, что серверная часть выйдет из строя при попытке открыть window, а затем ничего не произойдет.Еще одна причина установить блок try / catch и протестировать.

Возможно, вы захотите попробовать Firebug lite, который будет работать для IE.

http://getfirebug.com/lite.html

Попробуй / поймай, о чем упоминали другие люди, тоже хорошая идея. Я думаю.

Кроме того, есть ли вероятность того, что всплывающее окно пытается использовать окно, которое уже открыто, но свернуто. То есть он не работает, а просто перезагружает свернутое окно?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top