HTML: как заставить ссылки открываться в новой вкладке, а не в новом окне

Я использую target="_blank", чтобы открывать ссылки в новой вкладке. Но в IE он открывает новое окно, что вполне логично, потому что это то, что должен делать _blank.

И я не знаю, как target="_blank" ведет себя в других браузерах.

Есть ли что-то, что заставляет ссылки открываться в новой вкладке. Если браузер поддерживает вкладки ... иначе создайте новое окно


person Moon    schedule 19.10.2010    source источник
comment
target="_blank" откроет ссылку в новой вкладке в Firefox, Chrome и Opera. Два других браузера, IE и Safari, откроют его в новом окне.   -  person Šime Vidas    schedule 19.10.2010
comment
Вау, вы даже не можете использовать именованную цель и заставить IE открывать новые ссылки на вашей именованной вкладке. То есть, если вы решите открыть ссылку на новой вкладке с target="myName", последующие ссылки с той же целью не будут открываться на вашей вкладке, но откроют новое окно. Для меня это похоже на ошибку юзабилити. Спасибо IE.   -  person Matthew    schedule 27.05.2012


Ответы (13)


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

Кроме того, вы не должны навязывать это никому. Браузер - это собственность пользователя. Если пользователь хочет открыть все ссылки во вкладках или в новых окнах, позвольте ему сделать именно это.

Хорошо, что некоторые вещи мы делать не можем. target=_blank все еще подвергается насилию, и всплывающие окна убиты.

person Moin Zaman    schedule 19.10.2010
comment
+1! По умолчанию большинство браузеров открывают target = "_blank" в новой вкладке, но раньше открывалось новое окно. Там, я думаю, нет возможности заставить ссылки открываться в новой вкладке. - person tomsseisums; 19.10.2010
comment
Должна существовать возможность определять, какие ссылки должны открываться в новой вкладке / окне. Это удобно для внешних ссылок. Я считаю, что все согласны с тем, что открытие ссылки в новой вкладке - желаемый метод для большинства пользователей. IE и Safari по какой-то причине открывают _blank в новых окнах, но это, вероятно, устаревшее поведение и не имеет ничего общего с предпочтениями пользователя. Я считаю, что большинство пользователей даже не знают, как настроить такое поведение в своих браузерах. - person Šime Vidas; 19.10.2010
comment
Простое решение - не пытаться заставить ваши ссылки открываться в новой вкладке или в новом окне. Если мне нужна новая вкладка, я щелкну средней кнопкой мыши, спасибо. - person bobince; 19.10.2010
comment
@bobince А как насчет внешних ссылок? Если я (как владелец веб-сайта) хочу предоставить ссылку на внешнюю страницу (как в статье), но не хочу, чтобы посетитель уходил прочь (как и посетитель (!!)), тогда должен быть способ сделать это. - person Šime Vidas; 19.10.2010
comment
Посетитель решает, когда они собираются покинуть ваш сайт, а не вы, поэтому не имеет значения, хотите ли вы, чтобы они уходили. Если посетитель не хочет уходить, он может щелкнуть средней кнопкой мыши (как уже указано в @bobince). Если они уходят и хотят вернуться, у них есть кнопка «Назад»… и история браузера… и меню закладок… и, вероятно, возможность просто снова найти сайт. - person Quentin; 19.10.2010
comment
Вы также забываете, что на некоторых сайтах открытие ссылки на той же вкладке может быть просто неудобным. Предположим, вы просматриваете сообщение электронной почты и щелкаете ссылку, перезагрузить сообщение было бы излишним. Gmail заставляет открывать нелокальные ссылки в новых вкладках. - person Chris; 03.01.2012
comment
Да, я согласен с тем, что есть некоторая логика для открытия новых окон / вкладок для веб-приложений, таких как Gmail. - person Moin Zaman; 15.02.2012
comment
Возможно принудительное открытие ссылок в новом окне, отправленном DNS в этом аналогичном вопросе: stackoverflow.com/questions/726761/, просто убедитесь, что вы указали параметр 'specs' для окна. - person patrick; 13.12.2012

Поскольку я задался этим старым вопросом, а затем обнаружил, что теперь это возможно (возможно, этот вариант css тогда был недоступен), я просто хочу добавить обновление о том, как это можно сделать:

<a href="[yourlink]" target="_blank" style="target-new: tab;">Google</a>

Вот варианты стиля target-new:

target-new: window | tab | none 

Не тестировал параметр none, возможно, он использует настройку браузера по умолчанию.

Я подтвердил это для Firefox и IE7-9.

person Martin    schedule 17.07.2013
comment
У меня Safari 5.1.7. (думаю, что это последняя версия для Windows), и это не работает для меня. Может это для Safari 6+? Кто-нибудь может это подтвердить? - person Mladen Janjetovic; 20.09.2013
comment
Что ж, это не очень хорошо документировано, я проверил caniuse.com, но нет информации, определение здесь: w3.org/TR/css3-hyperlinks/#the-target-new. w3schools заявляет, что он не поддерживается ни одним браузером (w3schools.com/cssref/css3_pr_target-new. asp), но он работает, по крайней мере, в Firefox и IE, так что найти информацию сложно ... - person Martin; 23.09.2013
comment
w3schools.com/cssref/css3_pr_target-new.asp - person Bill Bunting; 26.10.2013
comment
@BillBunting, это, наконец, та же ссылка, которую я опубликовал. Однако они говорят, что ни один браузер его не поддерживает, но я его протестировал, и он работает ... Странно, что такое старое определение четко не задокументировано ... - person Martin; 28.10.2013
comment
Безумие, что такое определение вообще было бы необходимо. Почему бы им просто не определить другое значение для целевого атрибута? - person Dom Ramirez; 11.08.2014
comment
Ну, может быть, потому что, как это работает, вы можете создать новую вкладку с именем (target="someTab" style="target-new: tab;"), а затем обратиться к этой вкладке с целью в другом месте, чтобы перейти на вкладку. В этом есть смысл, но все же странно, что это нигде не задокументировано должным образом ... - person Martin; 11.08.2014
comment
у меня тоже не работает - person neel shah; 27.10.2014
comment
@neelshah et al. - CSS3 действительно предлагал target-new:, но в период с 2013 года (когда Мартин опубликовал этот ответ) по 2016 год от спецификации отказались - person Robotnik; 17.02.2016
comment
На сегодняшний день это еще не поддерживается ни одним из основных браузеров. - person Sergiu; 15.04.2016
comment
Я использую Chrome в Windows 7 и могу подтвердить, что это работает. - person santos; 16.11.2016

Нет, нет.

person Quentin    schedule 19.10.2010
comment
Тупой, по существу, окончательный ответ =) Я действительно хочу отредактировать этот ответ на просто Нет - person earcam; 18.07.2014

Я надеюсь, что это поможет вам

window.open (url, '_ newtab');

person Nasruddin    schedule 17.10.2013
comment
window.open возвращает windowObjectReference, который можно использовать повторно (в качестве альтернативы, имя окна 2-го аргумента можно повторно использовать в последующих вызовах для загрузки разных URL-адресов в той же вкладке / окне). Однако это не отвечает на вопрос - window.open не позволяет принудительно открыть вкладку или окно. - person earcam; 18.07.2014

Я не пробовал, но думаю, что это работает во всех браузерах:

target="_parent"

person Tiago    schedule 02.08.2013
comment
Новая вкладка сильно зависит от настроек пользователя и агента браузера. «Открывать ссылку в новой вкладке» не следует делать обязательным требованием в дизайне боковой части, как стало известно за последний год. - person Moon; 05.08.2013

То, как браузер обрабатывает новые окна и новую вкладку, задается в параметрах браузера и может быть изменено только пользователем.

person Andrew W.    schedule 19.10.2010
comment
предпочтения пользователя - это одно, но до сих пор я узнал, что вам нужно, чтобы PHP настраивал разные подходы для разных браузеров. - person Moon; 19.03.2012
comment
Действительно? Как у вас это получилось с PHP? - person Moin Zaman; 27.05.2012

a {
    target-name: new;
    target-new: tab;
}

Свойство target-new указывает, должны ли новые ссылки назначения открываться в новом окне или в новой вкладке существующего окна.

Примечание. Свойство target-new работает, только если свойство target-name создает новую вкладку или новое окно.

person Community    schedule 21.01.2015
comment
Он работает с новейшим Firefox. - person ; 21.01.2015
comment
Кажется странным обрабатывать это в CSS. Думаю, неплохо иметь возможность применять его через селектор CSS, но похоже, что это противоречит традиционному разделению задач. - person Paul-Hebert; 13.04.2018

Вы можете изменить способ открытия новой страницы Safari в Safari> Настройки> Вкладки> «Открывать страницы во вкладках вместо окон»> «Автоматически».

person dev_doctor    schedule 09.03.2012

Вы можете настроить IE так, чтобы ссылки открывались в новой вкладке, просто перейдите в меню настроек.

person Lucas Matos    schedule 19.03.2012

В Internet Explorer нажмите Инструменты -> Свойства обозревателя. Перейдите на вкладку Общие -> Вкладки -> Настройки. Выберите «Когда появляется всплывающее окно» -> Всегда открывать всплывающее окно в новой вкладке. Щелкните ОК.

person Santhosh    schedule 10.09.2013

Возможно!

Похоже, это отменяет настройки браузера. Надеюсь, это сработает для вас.

<script type="text/javascript">
// Popup window code
function newPopup(url) {
    popupWindow = window.open(url,'popUpWindow1','height=600,width=600,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
}
</script>

<body>
  <a href="JavaScript:newPopup('http://stimsonstopmotion.wordpress.com');">Try me</a>
</body>
person Richard Stimson    schedule 24.02.2015

Простое использование "target = _blank" будет учитывать предпочтения пользователя / браузера относительно того, использовать ли вкладку или новое окно, что в большинстве случаев означает "правильные действия".

  • IE9 + По умолчанию: Вкладка: Предпочтение: «Всегда открывать всплывающие окна в новой вкладке»
  • По умолчанию в Chrome: Tab. Скрытое предпочтение:
  • Firefox: по умолчанию: вкладка https://support.mozilla.org/en-US/kb/tab-preferences-and-settings
  • Safari: по умолчанию: вкладка

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

person Will Budreau    schedule 07.04.2015

Попробуйте использовать такую ​​функцию javascript

HTML:

<a href="javascript:void(0)" onclick="open_win()">Target</a>

Javascript:

<script>
function open_win() 
{
window.open("https://www.google.co.in/");
}
</script>
person Jkar    schedule 12.09.2013
comment
Спасибо, действительно помогает - установить href как javascript:! - person Tsung-Ting Kuo; 07.11.2015