[yandex2]
Мне показался этот вопрос достаточно интересным и полезным, поэтому я решила уделить ему особое внимание. Итак, вопрос.
Очень интересный вопрос, дело в том, что атрибут тега <a>, открывающий ссылку в новом окне или в новой вкладке браузера, target=»_blank», один из самых неоднозначных в HTML. Хоть я сама пользуюсь только им и не раз рекомендовала использовать своим читателям, стоит все таки разобраться в этом вопросе и постараться придти к какому-то мнению.
Тут стоит рассматривать ситуацию с двух сторон, использование target с точки зрения валидации и открытие ссылки в новом окне или вкладке браузера с точки зрения юзабилити. Начну с первого.
Атрибут target=»_blank» является невалидным атрибутом и его использование допускается только в переходных Transitional документах:
Для сравнения, <!DOCTYPE> в Blogger является таким:
<!DOCTYPE> содержит информацию о типе документа, является обязательным элементом веб-страницы, который сообщает браузеру, как интерпретировать данную страницу. Я не буду вдаваться в историю создания HTML, XML, XHTML – все это материал не для одной статьи. Но суть я постараюсь передать.
Если речь идет о Blogger, то наш шаблон является смесью двух языков – HTML и XML, именно в таких случаях необходимо указывать <!DOCTYPE> — XHTML 1.0 Strict. Документы данного типа обязаны иметь четкий синтаксис, а в спецификации для документов данного типа отсутствует атрибут target=»_blank». Именно поэтому для нас данный атрибут является невалидным и по сути его запрещено использовать.
Если же речь идет о других сайтах, можно ли там использовать атрибут target=»_blank», то надо смотреть исходный код страницы, именно запись <!DOCTYPE>.
Тип документа задается разработчиком конкретного сайта, в зависимости от того, какой язык или его версия используется при верстке сайта.
Что делать в такой ситуации?
Я знаю только два разрешения данной ситуации. И оба варианта далеки от идеала.
Первый вариант – для того, чтобы документ был валидным, можно использовать специальные JavaScript или JQuery скрипты, которые будут выполнять открытие страниц в новой складке браузера.
Второй вариант – использовать target=»_blank» и больше не мучиться данным вопросом. Не смотря на то, что данный атрибут является невалидным, он все равно поддерживается всеми браузерами. И его использование никак не влияет на индексацию сайта поисковыми системами.
Первую часть вопроса мы с вами рассмотрели, но как уже сказала, есть и другая сторона вопроса – юзабилити, удобство для посетителя. Удобно ли нашим читателям открывать ссылки в новой вкладке.
Определенная часть (я не могу сказать на сколько много) разработчиков считают дурным тоном лишать пользователя возможности самому решить, как ему открыть страницу, в той же вкладке или в новой. А также, большая часть продвинутых (опытных) пользователей, считают, что они сами в состоянии решить, как им открыть ссылку, ведь это предусмотрено, хотя бы в той же мышке. С другой же стороны, в интернете очень много пользователей с уровнем ниже среднего, и многие не знают, что с помощью той же мышки можно открывать любую ссылку в новом окне.
Также, с точки зрения многих пользователей, удобно, чтобы внутренняя ссылка открывалась в том же окне (вкладке) браузера, а внешние ссылки – в новой вкладке, для многих это просто и логично.
Именно из-за таких противоположных мнений и из-за разного уровня знаний пользователей, атрибут target=»_blank» и вообще вопрос открытия ссылок в новом окне, являются самой горячо обсуждаемой темой.
[yandex]
Какое мое мнение на этот счет? Я сама была новичком, я знаю много людей, которые все, что знают об интернете – это Яндекс и Одноклассники, а уж о том, что такое монитор, зачем столько кнопок на клавиатуре, а зачем вообще нужно колесико мышке, просто понятия не имеют (конечно, такие пробелы быстро восполняются). Я сама считаю, что открывать новый сайт в той же вкладке, где я сейчас нахожусь – это крайне неудобно. Даже если я действительно собираюсь уйти с сайта, я не сильно напрягусь, если закрою предыдущую вкладку. Я хочу, чтобы ссылка внутри сайта открывалась в той же вкладке, а внешняя в новой. Это мое личное мнение и на истину я не претендую.
Если вы серьезно задумались над этим вопросом, и приняли решение использовать специальный скрипт, я постаралась найти для вас решение. Данный скрипт подойдет для любого сайта, CMS и для платформы Blogger, на примере Blogger и покажу.
Заходим в Дизайн – Изменить HTML, находим код </body> и перед ним вставляем код:
</script>
После этого не забываем каждой ссылке вместо атрибута target=»_blank» прописывать новый атрибут rel=»external». Вот и все решение.
Если вы хотите предупредить своих пользователей о том, что ссылка будет открыта в новой вкладке, можно к ссылке применить стиль, как это сделано у меня. Для этого в шаблон перед строкой ]]></b:skin> добавляем такой стиль:
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/external.js
Но последние два скрипта не поддерживают автоматическую загрузку стилей, поэтому, если вы хотите использовать стиль для внешней ссылке отличным от внутренней, то не забывайте присваивать ссылке класс class=»external».
На этом про использование target=»_blank» и открытие ссылки в новой вкладке все. Надеюсь, я ответила на вопрос читателя и всем остальным эта информация также пригодится.
[ads1]Уважаемые блоггеры, если ваш вопрос связан с Blogger, настоятельно рекомендую задавать его на форуме. В блоге ответы публикуются не так часто, и не совсем регулярно, и ответ на достаточно элементарный вопрос приходится ждать несколько недель. Задав же вопрос на форуме, вы в течении пары часов уже получите ответ от меня или от других пользователей.
Желаю хороших выходных.
Спасибо за полезную статью.
На всякий случай, средняя кнопка не присутствует на многих «мышах», особенно у пользователей Маков — вот таких.
Спасибо за содержательный ответ. Это я задал этот вопрос 🙂
Я как узнал,что помимо буковок можно ещё и код писать,так сразу и стал использовать.Хотя,как правильно пишется,только недавно запомнил (однажды на WP кавычку забыл в шаблоне,всё перекосило нафиг,искал больше суток ошибку в миллионе кода:),блоггер сам добавляет кавычки.
Я тоже считаю,что внешние в новом окне,точнее вкладке,внутренние соответственно в родном.
Вроде тэг target=»_new» валиден…
Нет, в XHTML в стандарте вообще атрибут target отсутствует. Т.е. ни target=»_blank» ни «_new» никак нельзя, вообще нельзя target, иначе не пройдет валидацию.
Но я же не писала именно про кнопку, колесико то присутствует везде, и именно оно выступает в качестве кнопки, открывающей ссылку в новой вкладке. что касается Маков, спасибо, буду знать, хотя не думаю, что в России много пользователей, пользующихся им, а тем более среди новичков. Именно для них (новичков) была та часть статьи про мышку.
Надеюсь, после прочтения статья у вас не осталось вопросов :).
При перелинковки между сайтами можно использовать target=»_blank» с точки зрения яндекса он все нормально их учтет?
Конечно, можно. у этого параметра другое назначение и на перелинковку оно не влияет.
а можно ли статическую страницу открыть в новом окне?
Любую страницу можно открыть в новом окне, какая разница какая страница.
уже устал искать ответ на свой вопрос. Хозяйка этой странички показалась мне гостеприимной и говорящая легким языком.
Подскажите полностью код открытия нового окна с заданными размерами(750×650) НоРесайз, НоСкролинг, без статуса, без командной строки, короче ток Head. В теле будет размещаться код на игру с размерами 750×650
за ранее спасибо.
Это нужно делать через JavaScript.
Например, сделайте ссылку:
Моя ссылка
Это откроет новое окно без строки адреса, меню, строки статуса, без ресайза и т.д. и т.п. с шириной 750 и высотой 650. Если вы добавите в строку параметров left=100 и top=200, то эти параметры будут отвечать за положение окна на экране — отступ слева в пикселях и отступ сверху. Откроется, как вы сами понимаете, google.ru. Замените своим адресом. Последняя инструкция myWin.focus(); принуждает браузер сделать окно активным, чтобы пользователь обязательно его увидел.
Я вам ответил. Но уже неделю тут не появляется мой комментарий. Его либо в СПАМ, либо владелеца убрала. Я там просто код написал, может комментарии с кодом считаются вредными. Просто в вашей ситуации JavaScript нужен. Я написал как и что, а комментарий так и не появился уже неделю.
Блин, вот и у меня внутри сайта этот атрибут. Вроде и удобно, но не вредно ли…. Жаль конкретного ответа не нашел, но все равно спасибо за размышления.
Все в этом мире относительно. Относительно чистоты кода — вредно, относительно простоты использования — нет.
Спасибо за статью.