Xpoint
   [напомнить пароль]

Popup'ы и запрет их открывать

2006-08-30 06:08:01 [обр] Роман Чемисов [досье]

Как правильно открывать popup'ы, чтобы их браузеры не блокировали? Ну, или хотя бы по возможности не блокировали. Сейчас я открываю дочернеее окно (домен тот же) и оно блокируется Оперой.
Плюс один человек уверяет меня, что есть сайты, которые открывают popup'ы без лишних вопросов. И он клянётся, что никаких специальных настроек для этих сайтов не делал (вроде Разрешить этому сайту открывать окна).
Ещё: в Опере есть такие настройки:
1 Block all pop-ups
2 Block unwanted pop-ups
Что значит unwanted и как сделать wanted?

P. S. Собственно сейчас я открываю так:

var filter = window.open("/filter_form.htm","_blank","width=640,height=430,top=400,left=400");
спустя 2 часа 45 минут [обр] AKS [досье]
Что значит unwanted и как сделать wanted?
То, что открывается без участия пользователя. А изменить пользовательские настройки, сами знаете - нельзя.
спустя 1 час 16 минут [обр] Lynn [досье]
Вроде бы все браузеры разрешают (по умолчанию) открывать попапы в ответ на клик по ссылке.
спустя 12 минут [обр] Роман Чемисов [досье]
Lynn «Кофеман»[досье]
Я тоже думаю, что при клике по ссылке будет wanted popup.
спустя 2 часа 16 минут [обр] Alexey V. [досье]

Похоже, там логика похитрее. Вот что говорит оперный хелп об этой опции:

Opera will try to distinguish pop-ups that you have requested (typically log-in pages or similar) from pop-ups launched automatically from Web sites (typically advertising).

"Угадывают" они, видите ли :-)

Можно предположить, что window.open из onload или просто из кода будет игнорироваться. А из onclick по кнопке/ссылке, скажем, будет исполняться. А onclick из input type="text" - тоже в игнор. И т.п. Проверять все это лень.

Клик по ссылке - безусловно, "wanted" popup; это я проверил.

спустя 2 часа 37 минут [обр] Владимир Палант [досье]
Роман Чемисов[досье]
Про Оперу не скажу, но про Gecko знаю точно — Gecko не трогает popup'ы, которые открываются обработчиками некоторых событий: change click dblclick mouseup reset submit (это настройка dom.popup_allowed_events). При этом различается между событиями, созданными пользователем, и событиями, созданными програмно — последние не признаются для "легализации" popup'а.
спустя 4 часа 47 минут [обр] Андрей Гора [досье]

Роман Чемисов[досье]
- Если попап критичен для работы сайта, то можно открывать тестовый попап и оттуда обращаться в opener. Если обращения не произошло то по таймауту просить пользователя отключить блокировку.
- Есть сайты, которые открывают попап без вопросов, когдато с ними разбирался - там открытия попапа делается хаком на полсотни строк. Но работает это даже не во всех ИЕ, про другие не скажу.

Владимир Палант[досье] Как-то вроде любое программное событие можно подвести под событие пользователя - хоть что-то он на сайте да будет делать.

спустя 6 часов [обр] Владимир Палант [досье]
Андрей Гора[досье]
Хаки нужны только тем, кто открывает попапы, чтобы показать рекламу. Для пользовательских интерфейсов обычно достаточно открывать по клику — а это работает во всех браузерах.
спустя 2 часа 14 минут [обр] Роман Чемисов [досье]
Всем спасибо. Тему можно закрывать.
Я сделал так: добавил ссылку, при клике на которую открываю окно. Работает везде.
Powered by POEM™ Engine Copyright © 2002-2005