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", каждый раз будет создаваться новое окно поверх текущего окна."
насколько я понимаю, это 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>
Внимание-не забудьте всегда включать "котировки" - по крайней мере, на 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. Только мои пять центов.