<a href="http://google.com">Link</a>
Как я могу открыть эту ссылку во всплывающем окне? И предотвратите браузер для блокирования его
Есть "новые окна" и есть "всплывающие окна". Использование target=_blank
откроется в новом окне, за исключением того, что современные браузеры по умолчанию помещают новые окна в новые вкладки. Похоже, это не то, что вам нужно.
Для фактического всплывающего окна вам нужно window.open()
, и не забудьте указать определенную ширину и высоту, иначе некоторые браузеры будут помещать новое окно в новую вкладку. Пример Дарина кажется мне хорошим.
Что касается блокировки всплывающих окон, общий подход, которого придерживаются браузеры, заключается в том, что всплывающие окна, инициированные действием пользователя, разрешены (например, щелчком мыши), а всплывающие окна, инициированные спонтанно с помощью скрипта, как, например, это, блокируются:
<script type="text/javascript">
window.open("http://www.google.com/", "Google", "width=500,height=500");
</script>
Однако блокировка рекламы - это эскалационная война, и вы никогда не можете быть уверены, что всплывающее окно откроется. Если ваше всплывающее окно заблокировано, вызов window.open возвращает null. Поэтому я бы изменил пример Дарена следующим образом:
<a href="http://www.google.com/"
onclick="return !window.open(this.href, 'Google', 'width=500,height=500')"
target="_blank">
Если всплывающее окно заблокировано, onclick возвращает true
, который следует за ссылкой, на которую кликнули, открывая ее в новом окне или вкладке. Это запасной вариант, так что, по крайней мере, содержимое будет доступно (если не красиво).
<a href="http://google.com" onclick="window.open(this.href, 'windowName', 'width=1000, height=700, left=24, top=24, scrollbars, resizable'); return false;">Link</a>
Это откроет новое окно.
<a href="http://google.com" target="_blank">Link</a>