» » » Валидный target="_blank"

Валидный target="_blank"

0
Валидный target="_blank"

На многих сайтах применяется практика открытия внешних ссылок в новом окне. Как правило таким образом открываются: ссылки на сайт разработчиков или результаты выдачи поисковой системы. Как правило, для этого используется атрибут target тега
<a>
<a href="#" target="_blank">Ссылка откроется в новом окне</a>

Вообще говоря, указывать пользователю, как ему открыть ссылку некрасиво. Гуру юзабилити сайтов в один голос утверждают, что пользователь сам в состоянии решить, как ему открыть ссылку. Он разберется в своих окнах без наших с вами пожеланий по этому поводу. Более того, мы нарушим и работу стандартной кнопки браузера «Назад». Такое грубое вмешательство в привычки, скорее всего вызовет неприязнь!

Кроме того создается плохое впечатление: «Пользователь уходит с сайта! Он может сюда никогда не вернуться! А-а-а! Что делать? Давайте откроем новую ссылку в другом окне! Может быть, когда он посмотрит все, что ему нужно, то закрыв это окно, он опять попадет к нам и уж тогда-то точно станет постоянным посетителем!»

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

Однако кроме моральной есть еще и техническая сторона вопроса — атрибут target отсутствует в спецификации XHTML 1.0 Strict и, соответственно, не пройдет валидацию!
Валидный target="_blank"


Валидное решение: javascript
Если, несмотря на предыдущие абзацы, вы все-таки решили (или вас заставили) открывать страницу в новом окне, давайте хотя бы сделаем это валидно.

Тут на помощь придет javascript. Попробуем перехватить событие onclick ссылки и принудительно открыть новое окно с помощью функции window.open(). После чего запретим переход по ссылке в родном окне, указав return false:
<a href="#" onclick="window.open(this.href); return false">Ссылка откроется в новом окне</a>

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

Более удачное решение
Блокировка всплывающих окон предназначена главным образом для борьбы с надоедливой рекламой. Такая функция есть во всех современных браузерах. Некоторые браузеры даже предлагают разные уровни блокировки. Например в Opera 9+ можно блокировать либо только «нежелательные» окна либо все подряд.

Уж не знаю какой процент пользователей так радикально борется с всплывающими окнами, а только при таких настройках вместо открытия окошка просто появиться маленькая подсказочка «всплывающее окно блокировано». Более того, даже это проявление реакции браузера на щелчок в настройках можно отключить. В этом случае ссылка просто потеряет функциональность: «Я кликаю, а ничего не происходит!»

Если прочитав это, кто-то сказал: «Всем не угодишь! Ну кто же им доктор, что у них все отключено!», то нам с такими не по пути. Для остальных продолжим.

Собственно говоря, ссылка с target="_blank" при заблокированных всплывающих окнах просто откроется в своем родительском окне. Поэтому предыдущее решение можно считать не полным. Более удачный вариант такой:
<a href="#" onclick="return !window.open(this.href)">Ссылка откроется в новом окне</a>

Тут мы воспользовались тем, что функция window.open() возвращает значение true, если окно открыто успешно и false, в противном случае. То есть, в случае, когда ссылка благополучно открылась в новом окне, мы блокируем открытие ссылки в своем родном окне, т.к. return будет !true=false. И наоборот, если окно открыть не удалось, return true позволит ссылке отработать в штатном режиме.

Выводы
Для открытия ссылки в новом окне вместо невалидного атрибута target рекомендуем применять
javascript: onclick="return !window.open(this.href)".

А вообще говоря, открытие ссылки в новом окне не стоит применять без крайней необходимости.
Внимание!
Для просмотра скрытого текста, Вам необходимо Войти или Зарегистрироваться.
  • Полезные статьи
  • 15-06-2013, 20:57
  • 1338
Вернуться назад
Аватар
1
полезная статья
0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.