Открыть меню    

Открываем все внешние ссылки в новом окне

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

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

Принимая во внимание вышеприведенное условие, нам понадобится следующий код:

JQuery


$(document).ready(fucntion(){

var url_my = location.protocol + "//" + location.hostname;
$("a[href^='http://']").not("[href^='"+url_my+"']")
.attr("target","_blank");


})

Пояснение по свойствам объекта protocol:

  • location.protocol - протокол для доступа к url (http:, https:);
  • location.hostname – название сайта (например, www.dnzl.ru).

Работа с фильтрами jQuery, включая not: основы jquery.

Пример, вот ссылка, которая не имеет атрибута target со значением _blank. При помощи вышеприведенного кода при клике по ссылке сайт google откроется в новом окне.

google

Можно сделать «ход конем», и запретить следовать поисковикам по внешним ссылкам, для этого просто передайте ссылкам атрибут rel со значением nofollow. Думаю, сложно переоценить важность атрибута rel для seo.

Комментарии к статье