Можно ли пользоваться target="_blank". Вопрос от читателя

Доброго времени суток, уважаемые читатели. Давно не выходил выпуск Ответов на вопросы, думаю, многие уже заждались ответов на свои вопросы. Кто-то из вас уже нашел ответ на свой вопрос без моей помощи, прошу прощения, что не я дала вам ответ. Буду исправляться. К сожалению, сегодня я также не отвечу на все вопросы, а только на один.

Можно ли использовать target blank
Мне показался этот вопрос достаточно интересным и полезным, поэтому я решила уделить ему особое внимание. Итак, вопрос.

Можно ли пользоваться тегом target="_blank" для того, чтобы ссылка открывалась в новом окне браузера? Не вредно ли это? Влияет ли это на что-нибудь?

Очень интересный вопрос, дело в том, что атрибут тега <a>, открывающий ссылку в новом окне или в новой вкладке браузера, target="_blank", один из самых неоднозначных в HTML. Хоть я сама пользуюсь только им и не раз рекомендовала использовать своим читателям, стоит все таки разобраться в этом вопросе и постараться придти к какому-то мнению.

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

Атрибут target="_blank" является невалидным атрибутом и его использование допускается только в переходных Transitional документах:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Для сравнения, <!DOCTYPE> в Blogger является таким:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE> содержит информацию о типе документа, является обязательным элементом веб-страницы, который сообщает браузеру, как интерпретировать данную страницу. Я не буду вдаваться в историю создания HTML, XML, XHTML – все это материал не для одной статьи. Но суть я постараюсь передать.

Если речь идет о Blogger, то наш шаблон является смесью двух языков – HTML и XML, именно в таких случаях необходимо указывать <!DOCTYPE> -  XHTML 1.0 Strict. Документы данного типа обязаны иметь четкий синтаксис, а в спецификации для документов данного типа отсутствует атрибут target="_blank". Именно поэтому для нас данный атрибут является невалидным и по сути его запрещено использовать.

Если же речь идет о других сайтах, можно ли там использовать атрибут target="_blank", то надо смотреть исходный код страницы, именно запись <!DOCTYPE>.

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

Что делать в такой ситуации?
Я знаю только два разрешения данной ситуации. И оба варианта далеки от идеала.

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

Минус данного способа: если в настройках браузера отключен JavaScript, то страница соответственно не откроется в новом окне.

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

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

Определенная часть (я не могу сказать на сколько много) разработчиков считают дурным тоном лишать пользователя возможности самому решить, как ему открыть страницу, в той же вкладке или в новой. А также, большая часть продвинутых (опытных) пользователей, считают, что они сами в состоянии решить, как им открыть ссылку, ведь это предусмотрено, хотя бы в той же мышке. С другой же стороны, в интернете очень много пользователей с уровнем ниже среднего, и многие не знают, что с помощью той же мышки можно открывать любую ссылку в новом окне.

Если вы ещё не знаете, как это сделать, я вам расскажу. У каждой мышки обязательно есть колёсико, так вот если вы, наведя курсор мыши на ссылку, нажмете на колесико, то ссылка откроется в новом окне. Либо, есть мышки с тремя кнопками, и данную функцию выполняет средняя клавиша. Но как я сказала, далеко не все пользователи интернета знают о такой приятной мелочи.

Также, с точки зрения многих пользователей, удобно, чтобы внутренняя ссылка открывалась в том же окне (вкладке) браузера, а внешние ссылки – в новой вкладке, для многих это просто и логично.

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

Какое мое мнение на этот счет? Я сама была новичком, я знаю много людей, которые все, что знают об интернете – это Яндекс и Одноклассники, а уж о том, что такое монитор, зачем столько кнопок на клавиатуре, а зачем вообще нужно колесико мышке, просто понятия не имеют (конечно, такие пробелы быстро восполняются). Я сама считаю, что открывать новый сайт в той же вкладке, где я сейчас нахожусь – это крайне неудобно. Даже если я действительно собираюсь уйти с сайта, я не сильно напрягусь, если закрою предыдущую вкладку. Я хочу, чтобы ссылка внутри сайта открывалась в той же вкладке, а внешняя в новой. Это мое личное мнение и на истину я не претендую.

Если вы серьезно задумались над этим вопросом, и приняли решение использовать специальный скрипт, я постаралась найти для вас решение. Данный скрипт подойдет для любого сайта, CMS и для платформы Blogger, на примере Blogger и покажу.

Заходим в Дизайн – Изменить HTML, находим код </body> и перед ним вставляем код:

<script src='http://sites.google.com/site/seobiblioteka/externallinks.js' type='text/javascript'>
</script>

После этого не забываем каждой ссылке вместо атрибута target="_blank" прописывать новый атрибут rel="external". Вот и все решение.

Если вы хотите предупредить своих пользователей о том, что ссылка будет открыта в новой вкладке, можно к ссылке применить стиль, как это сделано у меня. Для этого в шаблон перед строкой ]]></b:skin> добавляем такой стиль:

.external {
padding: 0 10px 2px 0;
background: url(http://lh6.googleusercontent.com/_G92voTj-yF0/TcFG68RdfLI/AAAAAAAABfA/QJM25G6lInk/externallink.gif) no-repeat right center;
}

Я выложила свои значения поля padding. В зависимости от используемого вами шрифта и настроек отображения текста, вам нужно будет подогнать эти цифры под себя. Также вы можете загрузить картинку в свой альбом или вообще использовать другую.

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

http://sites.google.com/site/seobiblioteka/extlinks.js
http://sites.google.com/site/seobiblioteka/external.js

Но последние два скрипта не поддерживают автоматическую загрузку стилей, поэтому, если вы хотите использовать стиль для внешней ссылке отличным от внутренней, то не забывайте присваивать ссылке класс class="external".

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

Уважаемые блоггеры, если ваш вопрос связан с Blogger, настоятельно рекомендую задавать его на форуме. В блоге ответы публикуются не так часто, и не совсем регулярно, и ответ на достаточно элементарный вопрос приходится ждать несколько недель. Задав же вопрос на форуме, вы в течении пары часов уже получите ответ от меня или от других пользователей.
Желаю хороших выходных.


Запись опубликована автором в рубрике Как создавать сайты с метками .

Можно ли пользоваться target="_blank". Вопрос от читателя: 14 комментариев

  1. SwaEgo

     Я как узнал,что помимо буковок можно ещё и код писать,так сразу и стал использовать.Хотя,как правильно пишется,только недавно запомнил (однажды на WP кавычку забыл в шаблоне,всё перекосило нафиг,искал больше суток ошибку в миллионе кода:),блоггер сам добавляет кавычки.
    Я тоже считаю,что внешние в новом окне,точнее вкладке,внутренние соответственно в родном.

  2. Count Raven Amiant

    Нет, в XHTML в стандарте вообще атрибут target отсутствует. Т.е. ни target=»_blank» ни «_new» никак нельзя, вообще нельзя target, иначе не пройдет валидацию.

  3. SEO-Дилетант'ка

    Но я же не писала именно про кнопку, колесико то присутствует везде, и именно оно выступает в качестве кнопки, открывающей ссылку в новой вкладке. что касается Маков, спасибо, буду знать, хотя не думаю, что в России много пользователей, пользующихся им, а тем более среди новичков. Именно для них (новичков) была та часть статьи про мышку.

  4. Laxre

    При перелинковки между сайтами можно использовать target=»_blank» с точки зрения яндекса он все нормально их учтет?

  5. Wat4er

    уже устал искать ответ на свой вопрос. Хозяйка этой странички показалась мне гостеприимной и говорящая легким языком.
    Подскажите полностью код открытия нового окна с заданными размерами(750×650) НоРесайз, НоСкролинг, без статуса, без командной строки, короче ток Head. В теле будет размещаться код на игру с размерами 750×650
    за ранее спасибо.

  6. Count_Raven

    Это нужно делать через JavaScript.

    Например, сделайте ссылку:

    Моя ссылка

    Это откроет новое окно без строки адреса, меню, строки статуса, без ресайза и т.д. и т.п. с шириной 750 и высотой 650. Если вы добавите в строку параметров left=100 и top=200, то эти параметры будут отвечать за положение окна на экране — отступ слева в пикселях и отступ сверху. Откроется, как вы сами понимаете, google.ru. Замените своим адресом. Последняя инструкция myWin.focus(); принуждает браузер сделать окно активным, чтобы пользователь обязательно его увидел.

  7. Count_Raven

    Я вам ответил. Но уже неделю тут не появляется мой комментарий. Его либо в СПАМ, либо владелеца убрала. Я там просто код написал, может комментарии с кодом считаются вредными. Просто в вашей ситуации JavaScript нужен. Я написал как и что, а комментарий так и не появился уже неделю.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *