Странное поведение при открытии всплывающего окна в Internet Explorer - PullRequest
1 голос
/ 04 ноября 2008

У меня есть следующий код 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, а другие блокировщики не установлены.

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

Ответы [ 3 ]

3 голосов
/ 07 ноября 2008

Ах, кажется, я понял ... пропустил это в описании ...

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

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

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

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

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

0 голосов
/ 04 ноября 2008

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

http://getfirebug.com/lite.html

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

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

0 голосов
/ 04 ноября 2008

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

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

Edit:

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

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

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

...