Использование атрибута _blank приводит к тому, что ссылка открывается в новом окне или вкладке браузера. Однако на практике всё далеко не так просто, как кажется.
Атрибут ссылки _blank не только представляет собой угрозу для безопасности сайта, но также существует множество ситуаций, когда рекомендуется использовать не _blank, а нечто иное.
Из этой статьи вы узнаете, когда использование атрибута _blank не является хорошей идеей.
А спонсором блога в этом месяце выступает сервис Rookee. Когда требуется комплексное поисковое продвижение, контекстная реклама на автопилоте или формирование репутации в сети – на помощь приходят Rookee!
Атрибут _blank указывает браузеру открыть ссылку в новой вкладке.
На странице сайта может присутствовать несколько ссылок, использующих атрибут _blank, и каждая из них, при нажатии, будет открывать новую вкладку браузера.
Более того, если пользователь нажимает на одну и ту же ссылку снова и снова, браузер будет открывать всё новые и новые вкладки.
Некоторые вебмастеры считают, что пользователи должны сами решать, хотят ли они открыть ту или иную ссылку в новом окне.
Кто-то даже утверждает, что target blank – неэтичный SEO-инструмент, заманивающий людей в ловушку на сайте. Ведь, открывая ссылки в новом окне браузера, вы, косвенно, улучшаете поведенческие факторы своего проекта.
Проблема с этой точкой зрения заключается в том, что многие пользователи интернета до сих пор попросту не знают, что ссылки можно открывать в новых окнах. Аудитория в различных нишах технически подкована на разном уровне.
Среднестатистический посетитель сайта не знает, что можно щёлкнуть правой кнопкой мыши по ссылке (или совершить продолжительное нажатие на экране мобильного устройства) и выбрать открытие новой вкладки браузера.
Таким образом, предоставление пользователям «выбора» на самом деле не является выбором. Люди просто идут туда, куда вы их посылаете.
«Этичность» выбора одного посетителя открыть ссылку в том же веб-браузере может запутать другого, когда тот попытается вернуться на исходную веб-страницу, закрыв вкладку, в которой он сейчас находится.
Поэтому, на мой взгляд, выбор, использовать ли атрибут ссылки _blank или нет, является личным и деловым выбором каждого, отдельно взятого, вебмастера. Я на своих проектах использую.
Атрибут ссылки target=”_blank” может создать брешь в системе безопасности сайта. На странице Web.dev Google о рисках использования атрибута ссылки _blank говорится следующее:
Другая страница может выполняться в рамках того же процесса, что и ваша страница. Если на другой странице выполняется много JavaScript, производительность вашей страницы может снизиться.
Другая страница может получить доступ к объекту window с помощью свойства window.opener. Это может позволить другой странице перенаправить вашу страницу на вредоносный URL.
Что же делать в таком случае?
Использовать атрибуты rel=”noopener” или rel=”noreferrer” для каждой ссылки.
Атрибут ссылки rel=”noreferrer” функционирует, по сути, так же, как и атрибут ссылки rel=”noopener”, поскольку он не позволяет сайту, на который ведёт ссылка, взять под контроль сайт, с которого ссылка установлена.
Поэтому, если вы хотите отправлять веб-сайтам информацию о реферере, параллельно защищаясь от уязвимости, создаваемой атрибутом ссылки _blank, используйте “noopener”.
Если же вы предпочитаете сохранять приватность и не передавать информацию о реферере, параллельно защищаясь от уязвимости, создаваемой атрибутом ссылки _blank, используйте “noreferrer”.
Существуют особые ситуации, связанные с безопасностью, когда вебмастер не хочет, чтобы пользователь создавал несколько веб-страниц. Одним из таких случаев является сайт, работающий с конфиденциальной информацией о клиентах.
Если на YMYL-проекте используется _blank для ссылок на конфиденциальную информацию, это может привести к тому, что посетитель сайта откроет несколько веб-страниц с конфиденциальной информацией.
Неосознанно, одна из этих страниц может остаться открытой.
Например, человек может закрыть основное окно и дополнительное, где он вводил свои личные данные, и не заметить, что третье окно с конфиденциальной информацией всё ещё открыто на фоновой вкладке браузера.
В таком случае владелец сайта может воспользоваться другим ссылочным атрибутом – blank (без нижнего подчёркивания).
Атрибут “blank” откроет ссылку в новой вкладке браузера. Однако, в отличие от атрибута _blank, все остальные ссылки на исходной веб-странице также откроют связанную страницу на той же вкладке, что и первая нажатая ссылка.
Например, если на странице имеется пять ссылок, использующих атрибут “blank”, и пользователь нажимает на первую ссылку, она открывается в новом окне. Затем, клик по второй ссылке приведёт к тому, что страница загрузится в том окне, которое открылось при нажатии на первую ссылку. И так далее.
Кстати, вы вовсе не обязаны использовать слово blank. Можно подставить практически любой другой набор символов.
Разница между использованием _blank и любого другого слова заключается в том, что при использовании другого слова каждая ссылка на странице будет открываться в одной и той же новой вкладке браузера.
Например, можно закодировать ссылку следующим образом:
В таком случае она откроется в новой вкладке браузера.
Теперь возьмём две ссылки с одинаковым атрибутом:
Если посетитель сайта щёлкнет по первой ссылке, откроется новая вкладка браузера. Если он нажмёт на вторую ссылку, она откроется в той же вкладке, что и первая, по сути, повторно используя ту же вкладку браузера.
Бывают случаи, когда вебмастеру необходимо использовать не атрибут _blank, а что-то другое. Одним из таких случаев является использование встроенных фреймов.
Инлайн-фрейм (iframe) – это элемент HTML, который может содержать внутри себя другой веб-документ.
Например, некоторые рекламные объявления содержатся во фрейме, так что, в итоге, они оказываются веб-страницей внутри веб-страницы.
Inline frame кодируется с помощью элемента iframe (также называемого тегом iframe).
Поскольку iframe – это, по сути, веб-страница, встроенная в другую веб-страницу, в спецификациях HTML есть атрибуты ссылок, специфичные для iframe, которые заставляют ссылки, встроенные в iframe, вести себя определённым образом.
Внутри iframe по-прежнему можно использовать _blank для открытия веб-страницы в новой вкладке браузера. Но это не рекомендуется, если вам требуется определённое поведение iframe.
Существует три атрибута ссылки, специфичных для iframe:
Когда заходит речь об атрибуте ссылки _blank, можно особо не задумываться и просто использовать его вместе с noreferrer или noopener. Тем не менее, полезно знать, что существуют альтернативы.
В конечном счёте, использование ссылочного атрибута _blank настолько простое или сложное, насколько вы его таковым сделаете. Всё зависит от ваших конкретных потребностей.
Сообщение Атрибут ссылки target blank: в каких случаях его лучше не использовать появились сначала на Блог SEO-аспиранта.