target= "пустой" против target= " новый"

в чем разница между <a target="_new"> и <a target="_blank"> и что я должен использовать если я хочу открыть ссылку в новой вкладке/окне?

12 ответов


использовать "настроек"

по словам HTML5 Spec:

A допустимое имя контекста просмотра - это любая строка с хотя бы одним символом, которая не начинается с символа низкой строки U+005F. (Имена, начинающиеся с подчеркивания зарезервированы для специальных ключевых слов.)

A допустимое имя контекста просмотра или ключевое слово - это любая строка, которая является допустимым именем контекста просмотра или ASCII нечувствительный к регистру матч для одного из: _blank, _self, _parent или _top."- источник

Это означает, что нет такого сайта как _new в HTML5, и не в HTML4 (и, следовательно, XHTML) либо. Это означает, что не будет никакого согласованного поведения, если вы используете это как значение для целевого атрибута.

рекомендации по безопасности

как Даниэль и Майкл указали в комментариях, при использовании цель _blank указывая на ненадежных веб-сайт, вы должны, кроме того,rel="noopener". Это предотвращает открытие сайта, чтобы возиться с открывателем через JavaScript. См.этот пост для получения дополнительной информации.


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

используя target="_new" технически недействителен в соответствии со спецификациями, но, насколько я знаю, каждый браузер будет вести себя одинаково:

  • он будет искать вкладку или окно с контекстным именем "_new"
  • если найдена вкладка/окно" _new", то в нее загружается URL
  • если он не найден, новый вкладка / окно создается с контекстным именем "_new" и загруженным в него URL

Примечание target="_new" будет вести себя точно так же, как target="new", и последний является допустимым HTML, в то время как первый является недопустимым HTML.

добавив некоторую путаницу к этому, в HTML4 target атрибут устарел. В HTML5 это решение было отменено, и оно снова является официальной частью спецификации. Все браузеры поддерживают target независимо от того, какую версию HTML вы используете, но некоторые валидаторы будут помечать использование как устаревшее, если ваш doctype-HTML4.


TL; DR
используйте _blank

атрибут target указывает, где открыть связанный документ.

USAGE: target="xyz"  [don't forget double quotes]

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent     Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window 
framename   Opens the linked document in a named frame

поскольку " _new "не является ни одним из них, он попадет под" framename", поэтому, если пользователь повторно нажмет на эту гиперссылку, он не откроет новую вкладку вместо обновления существующей вкладки. В то время как в _blank, если пользователь нажимает дважды, открываются 2 новые вкладки.


это, возможно, было задано раньше, но:

"каждая ссылка, указывающая target= "_new", ищет и находит это окно по имени и открывается в нем.

Если вы используете target= "_blank", каждый раз будет создаваться новое окно поверх текущего окна."

отсюда:http://thedesignspace.net/MT2archives/000316.html


насколько я понимаю, это target = whatever будет искать рамку / окно с этим именем. Если он не найден, откроется новое окно с этим именем. Если whatever == "_new", это будет выглядеть как если бы вы использовали _blank за исключением.....

использование одного из зарезервированных целевых имен обойдет фазу "поиск". Итак,target = "_blank" на дюжине ссылок откроется дюжина пустых окон, но target = whatever на десяток ссылок откроется только одно окно. target = "_new" по десятку ссылок может дать непостоянное поведение. Я не пробовал его в нескольких браузерах, но должен открыть только одно окно.

по крайней мере, так я интерпретирую правила.


Я знаю, это старый вопрос и правильный ответ, используйте _blank, уже несколько раз, но с помощью <a target="somesite.com" target=_blank>Link</a> это угроза безопасности.

Это рекомендовано ( преимущества), чтобы использовать <a href="somesite.com" target="_blank" rel="noopener noreferrer">Link</a>


target="_blank" открывает новую вкладку в большинстве браузеров.


Внимание-не забудьте всегда включать "котировки" - по крайней мере, на Chrome,target=_blank (без кавычек) не то же самое, что target="_blank" (с цитатами).

последняя открывает каждую ссылку в новой вкладке/окне. Первая (отсутствующие кавычки) открывает первую ссылку, которую вы нажимаете в одной новой вкладке/окне, а затем перезаписывает ту же вкладку/Окно с каждой последующей ссылкой, которую вы нажимаете (которая также называется с отсутствующими кавычками).


  • настроек в качестве целевого значения, появится новое окно каждый раз,
  • _new создаст только одно новое окно.

кроме того, каждая ссылка, нажатая с целевым значением _new, заменит страницу, загруженную в ранее созданное окно.

вы можете здесь когда использовать _blank или _new чтобы попробовать его для себя.


атрибут target в ссылке заставляет браузер открывать страницы в новом окне браузера. Используя _blank в качестве целевого значения, появится новое окно каждый раз при использовании _new будет появляться только одно новое окно, и каждая ссылка нажата с целевым значением _new заменит страницу, загруженную в ранее созданное окно


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

стоимостью _blank = целевой контекст просмотра: новый: вкладка или окно в зависимости от настроек просмотра

стоимостью _new = недопустимо; нет такого значения в HTML5 для целевого атрибута элемента

атрибут target со всеми его значениями в элементе: видео


использование _New полезно при работе со страницами, которые Iframed. Поскольку target= "_blank" не делает трюк и открывает страницу на том же iframe... target new-лучшее решение для страниц Iframe. Только мои пять центов.