Панель инструментов Google не позволяет открыть новое окно - PullRequest
1 голос
/ 08 февраля 2010

Панель инструментов Google создает серьезную проблему для меня в IE 6, когда я пытаюсь открыть окно, используя window.open, или если я установил target = "_ blank" для тега привязки. Он обрабатывает окно как всплывающее окно, а всплывающее окно блокируется, что я действительно не хочу, чтобы dsiplay для моего пользователя. Эта проблема возникает только в том случае, если перед window.open выполняется дополнительный код, например вызов другого метода в onclick и затем использование window.open. Может кто-нибудь сказать мне, как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

Панель инструментов и другие подобные устройства предназначены для защиты пользователей от нежелательных всплывающих окон. Единственный способ для них определить, является ли окно «требуемым», состоит в том, чтобы определить, вызывается ли window.open в обработчике события для инициируемого пользователем события, такого как нажатие кнопки. Таким образом, если вы попытаетесь сделать что-то вроде вызова window.open при загрузке документа или в обработчике успеха AJAX, панель инструментов (и другие блокировщики) предположит, что всплывающее окно подозрительно.

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

Более радикальным изменением было бы отойти от window.open и использовать имитированные всплывающие окна, сделанные из плавающих элементов, которые покрывают часть страницы. Что-то вроде того, что дают вам диалоги пользовательского интерфейса jQuery.

0 голосов
/ 08 февраля 2010

Добавление сайта в список доверенных сайтов будет работать.

Установка target = "_ blank" не должна вызывать блокировку всплывающих окон.

...