Исходя из правил разметки External links можно выделить следующие особенности их оформления:

  1. C явным указанием на протокол: http:// или https://
    <a href="http://google.com">Google</a>
    <a href="https://google.com">Google</a>
  2. Без явного указания: //
    <a href="//google.com">Google</a>

Далее почта mailto: и атрибут target с параметром _blank target="_blank".

Задача: необходимо привести внешние ссылки, так же ссылки на электронную почту к следующему виду:

<a href="http://site.com" rel="nofollow" target="_blank">site.com</a>

т.е. добавить к ним два атрибута. Но существуют ряд доменов — исключений, к которым данное правило применяться не должно.

Решение:

// External & email links
var linksContainer = "#comments .content";
// var linksContainer = ".node";

$(linksContainer + " " + "a[href^='http://'], a[href^='https://'], a[href^='mailto:'], a[href^='//']").each(function () {
    // Excluded domains
    var excludes = [
        'site.ru',
        'site2.tv',
        'site-3.com',
        'facebook.com/someaddress',
        'vk.com/someaddress',
        'twitter.com/someaddress'
    ];

    for(i = 0; i <  excludes.length; i++) {
        if(this.href.indexOf(excludes[i]) != -1) {
            return true;
        }
    }

    if(this.href.indexOf(location.hostname) == -1) {
        $(this).click(function() { return true; });
        $(this).attr({
            rel: "nofollow",
            target: "_blank",
            title: "Open in new Tab"
        });
        $(this).css('text-decoration', 'line-through'); // tmp
        $(this).click();
    }
})
// end External & email links

See the Pen myWoxq by DeN (@m5studio) on CodePen.


Выразить благодарность

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

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

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