Открыть иль не открыть — вот в чём вопрос…
Вы ведёте блог? Ставите ссылки на другие сайты? Если «да» и «да», то в каком окне/вкладке вы их открываете — в том же или в новом? 99,(9)% вебмастеров открывают внешние ссылки в новом окне (а некоторые открывают в новом даже ссылки на самого себя — что, с моей точки зрения, явный перебор). Ничтожно малое исключение составляют особо принципиальные.
[expand]Отступление об особо принципиальных. Читать полностью »
83 комментария на «Как открыть все внешние ссылки в новом окне (javascript)»
Катя (1 комментарий)
Спасибо! Вставила код в файл custom.js в указанную вами конструкцию, но не работает. Что делаю не так?
Княгиня (660 комментариев)
Заочно не могу сказать, надо смотреть глазами. Типовые причины такие:
У вас может быть что-то своё, что не вошло в этот список.
Катя
А для этой функции нужна была отдельная обёртка? я вставила в уже имеющуюся конструкцию, которая выглядела точно также. Может, в этом проблема?
Княгиня (660 комментариев)
Да нет, в одно ready можно вставить все события. Но следить при этом за правописанием.
Алфавит (2 комментария)
Очень всё доступно и верно написано. Когда-то долго мучались не могли разобраться. Спасибо автору!
Konstantin (2 комментария)
Здравствуйте! У меня с Вашим скриптом картинки на сайте почему-то при нажатии стали не увеличиваться в размерах, а открываться ещё одна пустая вкладка и предложение загрузить на компьютер. Не знаете как от этого избавиться? Не удаляя сам скрипт естественно, потому что свою роль он выполняет:)
Konstantin (2 комментария)
Мой коммент выше, быстро удалось решить проблему, исключил ещё одну внутреннюю ссылку.
Medok (2 комментария)
Очень удобно! Но для меня сложновато, к сожалению. Мы пока лучше по-старому, через target_blank.
310 (1 комментарий)
Предложенное решение не сработало. А вот так — да:
jQuery(document).ready(function() {
jQuery(‘a[href^=»http://»], a[href^=»https://»]’).not(‘a[href^=»http://мой.домен/»]’).attr(‘target’,’_blank’);
});
Княгиня (660 комментариев)
Если проблема решилась, то хорошо. А почему не сработало первое — надо смотреть конкретику.
Наталия (3 комментария)
После перевода сайта на https все ссылки стали открываться в новом окне, и внешние и внутренние. Как сделать так, чтобы внутренние по-прежнему открывались в текущем?
Княгиня (660 комментариев)
Хороший вопрос. Надо вместо:
not('a[href^="http://yoursite.ru/"]')
писать:
not('a[href^="http://yoursite.ru/"], a[href^="https://yoursite.ru/"]')
Или попробовать приём с добавлением target, описанный в комментариях.
Наталия (3 комментария)
Да, спасибо, так всё работает как надо.
А в список до not не надо добавлять
a[href^="https"]
?Княгиня (660 комментариев)
Нет, потому что символ ^ означает «начинается с». С http начинаются и http, и https.