Можно ли использовать target = "_ blank" в HTML5? - PullRequest
155 голосов
/ 16 ноября 2010

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

Можно ли продолжать использовать target="_blank"?

Я знаю, что это вообще плохая идея, но это самый простой способ открыть новое окно для чего-то вроде PDF, и это также не требует от вас полагаться на JavaScript.

Ответы [ 9 ]

150 голосов
/ 16 ноября 2010

Похоже, target="_blank" все еще в порядке. Он указан в качестве ключевого слова для просмотра контекста в последней версии HTML5 .

89 голосов
/ 07 сентября 2011

Можно использовать target="_blank"; Это было устранено в XHTML, потому что нацеливание на новые окна всегда вызывает всплывающее предупреждение в большинстве браузеров. XHTML всегда будет отображать ошибку с целевым атрибутом в валидации.

HTML 5 вернул его, потому что мы все еще используем его. Это наш друг, и мы не можем его отпустить.

Никогда не отпускай.

15 голосов
/ 31 июля 2013

Хотя target="_blank" является приемлемым в HTML5 , я лично стараюсь никогда его не использовать (даже для открытия PDF-файлов в новом окне).

HTML должен определять значение и содержание . Спросите себя, «изменится ли значение элемента a, если атрибут target будет удален?» Если нет, код не должен идти в HTML. (Вообще-то, я удивлен, что W3C сохранил это ... Я думаю, они действительно просто не могут отпустить.)

Браузер Поведение , в частности, Интерактивное поведение с пользователем , должно быть реализовано на клиентских скриптовых языках, таких как JavaScript. Поскольку вы хотите, чтобы браузер вел себя определенным образом, т. Е. Открывало новое окно, вам следует использовать JS. Но, как вы упомянули, такое поведение требует, чтобы браузер полагался на JS. (Хотя, если ваш сайт изящно или постепенно ухудшается, или что-то еще , то все равно должно быть в порядке. Пользователи с отключенным JS не будут сильно скучать.)

Как говорится, ни один из них не является правильным ответом. Где-то там есть мнение, что как открывается ссылка, в конечном счете, должен решить конечный пользователь . Возьмите этот пример.

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

Допустим, вы хотите быстро просмотреть связанную страницу, прежде чем вернуться. Вы можете открыть ее на новой вкладке, а затем закрыть, когда закончите (потому что нажатие кнопки «назад» и ожидание перезагрузки страницы занимает слишком много времени). Или, что, если это выглядит интересно, и вы хотите сохранить его на потом? Возможно, вам следует открыть его на новой вкладке фона и продолжать читать текущую страницу. Или, может быть, вы решили, что прочитали эту страницу, поэтому просто перейдите по ссылке на текущей вкладке.

Дело в том, что у вас есть собственный рабочий процесс, и вы хотите, чтобы ваш браузер вел себя соответствующим образом. Вы можете сильно расстроиться, если он примет за вас такие решения.

При этом веб-разработчики должны четко указывать, куда переходят их ссылки, на какие типы и / или форматы источников они ссылаются и что они делают. Подсказки могут быть вашими друзьями (если вы не используете планшет или телефон; в этом случае укажите их на мобильном сайте). Мы все знаем, как это ужасно, когда нас куда-то берут, чего мы не ожидали, или что-то происходит, чего мы не хотели.

12 голосов
/ 16 апреля 2012

это самый простой способ открыть новое окно для чего-то вроде PDF

Это также самый простой способ раздражать не-Windows пользователей. PDF прекрасно открываются в браузерах на других платформах. Открытие нового окна также портит историю навигации и усложняет работу на небольших платформах, таких как смартфоны.

НЕ открывайте новые окна для таких вещей, как PDF, только потому, что старые версии Windows были повреждены.

4 голосов
/ 25 июня 2017

Большинство веб-разработчиков используют target="_blank" только для открытия ссылок в новой вкладке.Если вы используете target="_blank" только для открытия ссылок на новой вкладке, то она уязвима для злоумышленника.Когда вы открываете ссылку в новой вкладке (target="_blank"), страница, которая открывается в новой вкладке, может получить доступ к начальной вкладке и изменить ее местоположение с помощью свойства window.opener.

Код Javascript:

window.opener.location.replace(malicious URL)

Профилактика:

rel="nofollow noopener noreferrer"
4 голосов
/ 10 июня 2016

Хотя цель все еще приемлема в HTML5, она не является предпочтительной.Для ссылки на файл PDF используйте атрибут download вместо атрибута target.

Вот пример:

<a href="files/invoice.pdf" download>Invoice</a>

Если исходное имя файла кодируется для уникального хранилища файлов, вы можете указать удобное для пользователя имя загрузки, присвоив значение атрибуту загрузки:

<a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>

Имейте в виду, что, хотя большинство современных браузеров поддерживают эту функцию, некоторые не могут.См. caniuse.com для получения дополнительной информации.

2 голосов
/ 16 ноября 2010
0 голосов
/ 23 февраля 2018

Вы можете сделать это следующим образом с jquery, это откроет его в новом окне:

<input type="button" id="idboton" value="google" name="boton" /> 

<script type="text/javascript">
    $('#idboton').click(function(){
        window.open('https://www.google.com.co');
    });

</script>
0 голосов
/ 15 января 2018

Я думаю, что целевой атрибут устарел для элемента <link>, а не <a>, поэтому, вероятно, вы слышали, что его больше не предполагается использовать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...