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