Как сделать так, чтобы все внешние ссылки открывались в новой вкладке?

Как сделать так, чтобы все внешние ссылки открывались в новой вкладке?

Есть два мнения по этому поводу.

Первое мнение заключается в том, что нельзя за пользователя решать как ему открывать новую страницу сайта. Только он сам может это сделать.

Второе мнение, которого придерживаюсь я, все внешние ссылки должны открываться в новой вкладке браузера, так как посетитель, переходя по предложенной вами ссылке, возможно не хотел бы закрывать текущую страницу, чтоб в последствии вернуться к ее изучению.

В этой статье я расскажу как сделать так, чтобы все внешние ссылки автоматически открывались в новой вкладке.

Мне кажется, что люди, которые делают сайты для людей, должны делать именно так, потому что ссылки, приведенные в ваших статьях, не всегда ведут на нужные материалы и пользователь, перейдя по ней, может просто полностью закрыть вкладку и больше не сможет вернуться обратно на ваш сайт. Такого просто нельзя допускать.

В HTML есть атрибут target у тега a, которым можно указывать поведение при нажатии на ссылку, но этот атрибут вроде как официально не поддерживается и не понятно будет ли поддерживаться впоследствии в HTML5. Да и к тому же, если ваш сайт уже немолодой и на каком-то этапе вы решили, что внешние ссылки должны открываться в новых вкладках, добавить каждой ссылку атрибут target – сродни самоубийству.

О новых свойства CSS говорить вообще рано, поэтому остается только JS. Приведенный ниже скрипт анализирует каждую ссылку при клике и в зависимости от доменного имени раздает нужное поведение.

Вот сам скрипт:


$(document).ready(function() { 
  $("a[href^=http]").each(
    function(){
      if(this.href.indexOf(location.hostname) == -1) {
        $(this).attr('target', '_blank');
      }
    })
});

Приведенный выше код нужно вставить между html-тегами

<head>...</head>
и забыть о этой проблеме.

P.S. Уже давно хочу выучить английский язык, так как хочется читать зарубежные сайты без электронных посредников. В моем случае придется идти на курсы английского языка с нуля, так как что в школе, что в институте, я учил немецкий язык, который как-то в жизни вообще не пригодился. Издержки совдеповского образования.

Комментарии:

  1. myr4ik07 опубликовал комментарий 22 Март 2012, 14:20 #

    Да, действительно, я как и многие не люблю, что бы ссылки открывались в том же окне, однозначно хотелось бы, что бы ссылки открывались в новых вкладках, окнах, желательно конечно в новой вкладке.
    Спасибо, взял на заметку.

    | Ответить
  2. Не для галочки опубликовал комментарий 17 Август 2013, 14:39 #

    Здравствуйте. Почему то статистика Лиру не учитывает просмотры страниц (внутри сайта), если открывается страница в новой вкладке. Как бы сделать так, чтоб и просмотры не падали по статистике, и удобно было посетителям сайта, открывались страницы в новой вкладке?

    | Ответить
  3. Катя опубликовал комментарий 20 Декабрь 2013, 12:54 #

    Скажите, а в какой именно файл вставить скрипт? Я вставила в custom.js, там как раз есть конструкция $(document).ready(function() {
    //
    });
    Но не сработало…

    | Ответить
  4. Andrey опубликовал комментарий 20 Март 2014, 20:55 #

    Я так понял надо создать js и подключить в шаблон?

    | Ответить
    • itshaman опубликовал комментарий 21 Март 2014, 11:50 #

      Да. До подключений этого файла нужно подключить jQuery

      | Ответить
Имя
e-mail
Сайт
Текст комментария: