Забыть о target

Гениальный в своей простоте способ заставить ссылку открыться в новом табе/окне, не используя deprecated атрибут target:

< а onclick="return !window.open(this.href)" hrеf="http://www.google.com">

Преимущества этого способа перед обычным open.window(url) в том, что если javascript отключен, то ссылка все равно сработает. Кроме того, ссылка будет проиндексирована поисковиками.

Проверено в FF2, IE6/7, Opera 9.20, Safari/Win.

Поведение браузеров при нажатии Ctrl+Click / Shift+Click:
В IE6 – в обоих случаях новое окно.
В IE7 – в обоих случаях новый таб (подозреваю что зависит от настроек браузера)
В FF2 – неадекват. ctrl+click открывает две вкладки, shift+click вкладку и окно
Opera – в обоих случаях новый таб
Safari/Win – в обоих случаях новое окно

При нажатии колесиком мышки ссылка срабатывает как обычно везде, кроме IE6, естественно.

In general, не стоит принуждать посетителей к чему-либо, предпочтительнее дать посетителю знать какого рода сама ссылка (файл [включая тип], внешняя/окно) с помощью иконок, которые можно легко прикрутить с помощью CSS, на пример вот так, тем самым давая ему возможность выбрать самому, где ее открыть.

This entry was posted in HTML, Scripting. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

9 Responses to Забыть о target

  1. czerny_angel says:

    Давным давно не ново.

  2. FX Poster says:

    Я вижу две причины, чтобы не использовать этот способ. Одну ты отписал. Вторая кроется в спеках Web Apps 1.0 (HTML5), в которых атрибут target у тега a совсем не является deprecated.

    PS. Очепятка – атрибут с одной “т” пишется.

  3. leMur says:

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

  4. Джубб says:

    Действительно, гениальная глупость. Людям из w3c, видимо, не пришло в голову, что вместо нерекомендуемого (по понятным идеологическим причинам: автор страницы определяет связь между элементами, а как эта связь будет реализовываться решает пользователь или браузеростроитель; но не запрещённого, а просто не проходящего валидацию) атрибута, “посвящённые” будут пихать в элемент js.

  5. neutrino says:

    [quote comment="1130"]Действительно, гениальная глупость. Людям из w3c, видимо, не пришло в голову, что вместо нерекомендуемого (по понятным идеологическим причинам: автор страницы определяет связь между элементами, а как эта связь будет реализовываться решает пользователь или браузеростроитель; но не запрещённого, а просто не проходящего валидацию) атрибута, “посвящённые” будут пихать в элемент js.[/quote]

    Да вы не переживайте, Джубб, в HTML5 target вернули.

  6. Джубб says:

    Да, это специальный язык для идиотов.

  7. Mikael says:

    Пользуюсь этой фичей уже как полгода.

  8. Nikita says:

    хммм… как-то странно мой коммент уроезало. Я хотел дать ссылку и сказать что это решение изящней. А коммент так извратился. Вот ссылка
    http://www.sitepoint.com/article/xhtml-strict-popups

  9. dsw says:

    Думаю плюсы данной реализации очевидны
    <а xhref=”http://www.dreamsee.biz” onclick=”this.target=’_blank’;”>Ссылка</а>

Leave a Reply

Your email is never published nor shared. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>