Забыть о 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 thoughts on “Забыть о target

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

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

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

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

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *