Главная » Забыть о target

Забыть о 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 Комментариев »

  1. 1  Плюс Минус  0

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

    Комментарий by czerny_angel — Сентябрь 6, 2007 @ 2:32 pm | Цитировать

  2. 2  Плюс Минус  0

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

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

    Комментарий by FX Poster — Сентябрь 6, 2007 @ 2:55 pm | Цитировать

  3. 3  Плюс Минус  0

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

    Комментарий by leMur — Сентябрь 7, 2007 @ 9:05 pm | Цитировать

  4. 4  Плюс Минус  0

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

    Комментарий by Джубб — Сентябрь 11, 2007 @ 1:03 pm | Цитировать

  5. 5  Плюс Минус  0

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

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

    Комментарий by neutrino — Сентябрь 11, 2007 @ 1:14 pm | Цитировать

  6. 6  Плюс Минус  0

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

    Комментарий by Джубб — Сентябрь 11, 2007 @ 3:07 pm | Цитировать

  7. 7  Плюс Минус  0

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

    Комментарий by Mikael — Сентябрь 12, 2007 @ 3:09 pm | Цитировать

  8. 8  Плюс Минус  0

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

    Комментарий by Nikita — Октябрь 1, 2007 @ 11:51 am | Цитировать

  9. 9  Плюс Минус  0

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

    Комментарий by dsw — Ноябрь 4, 2007 @ 4:00 pm | Цитировать

Оставить комментарий

XHTML (Разрешенные теги): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> .

Если вы хотите вставить в комментарий код, то жмите на кнопку "HTML" в редакторе и используйте теги <pre><code> и </pre></code> для вставки.

Не забывайте о том, что теги, вставленые без использования &lt;/&gt; будут автоматически трансформироваться.

Цитировать отмеченый текст