< The Webmakers Lounge />

v.3 HTML5 & CSS3

Варианты подписки

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

9 комментариев на “Забыть о target”

  1. czerny_angel сказал:

    6/09/2007 в 2:32 пп

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

  2. FX Poster сказал:

    6/09/2007 в 2:55 пп

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

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

  3. leMur сказал:

    7/09/2007 в 9:05 пп

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

  4. Джубб сказал:

    11/09/2007 в 1:03 пп

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

  5. neutrino сказал:

    11/09/2007 в 1:14 пп

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

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

  6. Джубб сказал:

    11/09/2007 в 3:07 пп

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

  7. Mikael сказал:

    12/09/2007 в 3:09 пп

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

  8. Nikita сказал:

    1/10/2007 в 11:51 дп

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

  9. dsw сказал:

    4/11/2007 в 4:00 пп

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

Оставить ответ