Заблокированное и неблокированное всплывающее окно - PullRequest
3 голосов
/ 29 ноября 2009

Я обнаружил, что браузеры не блокируют все всплывающие окна JavaScript.

Как написать всплывающие окна на JavaScript, которые не будут блокироваться браузерами?

Я имею в виду, что является основным фактором, который имеет значение?

Ответы [ 2 ]

8 голосов
/ 29 ноября 2009

В Firefox (и большинстве других современных веб-браузеров с блокировщиками всплывающих окон) окна Javascript обычно разрешены, если они являются результатом щелчка пользователем, но остановлены, если они пытаются открыть в фоновом режиме.

Сравните метод, используемый в этих плохих всплывающих окнах с этими хорошими всплывающими окнами . Исходный код доступен на сайте. Вот исходный код для «хороших» всплывающих окон:

<a href="javascript:winopen('http://www.popuptest.com/popup3.html','blank','width=450,height=235,status=yes')">Good PopUp #1</a>
<br><br>
<A class=blu HREF="http://www.popuptest.com/popup2.html" target="_BLANK">Good PopUp #2</A>
<br><br>
<A class=black HREF="http://www.popuptest.com/popup3.html" onclick="NewWindow(this.href,'rank','450','450','yes','center');return false" onfocus="this.blur()">Good PopUp #3</A>
<br><br>
<a href="javascript:PopWindow('http://www.popuptest.com/popup4.html', 450, 320)">Good PopUp #4</A>
4 голосов
/ 29 ноября 2009

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

Однако вы можете использовать всплывающее окно на странице, например JQuery UI Dialog , что все блокировщики всплывающих окон не могут его заблокировать, потому что это просто html-тег, такой как span или div. Поэтому он недостаточно умен для понимания содержимого внутри всплывающего тега. Это должен быть лучший способ избежать всех блокировщиков всплывающих окон.

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