Забыть о 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, на пример вот так, тем самым давая ему возможность выбрать самому, где ее открыть.

Эта запись была опубликована в рубрике HTML, Scripting. Вы можете следить за комментариями к этой записи.

Комментарии

  1. czerny_angel написал:

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

  2. FX Poster написал:

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

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

  3. leMur написал:

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

  4. Джубб написал:

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

  5. neutrino написал:

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

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

  6. Джубб написал:

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

  7. Mikael написал:

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

  8. Nikita написал:

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

  9. dsw написал:

    Думаю плюсы данной реализации очевидны
    <а 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>