Открытие всех внешних ссылок сайта в новом окне браузера (jQuery)

Для перехода по ссылке с открытием новом окне, необходимо добавить атрибут «» задав ему значение «blank» к ссылке. Но для некоторых «DOCTYPE», применение этого не позволит получить страницу, которая сможет пройти валидацию «W3C».

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

$('a').each(function() {
   var a = new RegExp('/' + window.location.host + '/');
   if(!a.test(this.href)) {
       $(this).click(function(event) {
           event.preventDefault();
           event.stopPropagation();
           window.open(this.href, '_blank');
       });
   }
});

Код, приведенный выше написан в предположении, что изначально неизвестно, какие ссылки внешние. Если предположить, что все внешние ссылки находятся внутри элемента с идентификатором #content и будут начинаются с http://, то и весь скрипта можно уменьшить в одну строку:

$("#content a[href^='http://']").("target","_blank");


Запись навигация

Top