JS: Как добавить более одного URL-адреса в Javascript-код?

Я использую этот код в своем файле wordpress functions.php, чтобы автоматически добавлять nofollow к каждой ссылке определенного URL:

function cdx_handel_external_links() {
    ?>
<script type = "text/javascript">
( function( $ ) {

    $("a[href^=http]").click(function(){
      if (this.href.indexOf(location.hostname) == -1) {
         $(this).attr({
            target: "_blank"
         });
      }
    })

   //Add Nofollow
   $("a").each(function(){
    if (this.href.indexOf('example-url.com') >0 ){
        $(this).attr({
            rel: "nofollow"
         });
    }
   });

} )( jQuery );
</script>
   <?php
}
add_filter( 'wp_footer', 'cdx_handel_external_links', 999);

Но как я могу добавить в этот код новые URL-адреса? (Я новичок в программировании, сэр). Может быть через: indexOf('example-url.com','example-url2.com','example-url3.com') ? Большое спасибо за вашу помощь!

Обновлено:

Я сделал это как нуб, и у меня это сработало:

function cdx_handel_external_links() {
    ?>
<script type = "text/javascript">
( function( $ ) {

    $("a[href^=http]").click(function(){
      if (this.href.indexOf(location.hostname) == -1) {
         $(this).attr({
            target: "_blank"
         });
      }
    })

   //Add Nofollow
   $("a").each(function(){
    if (this.href.indexOf('example-url.com') >0 ){
        $(this).attr({
            rel: "nofollow"
         });
    }
   });

 //Add Nofollow 2.domain
   $("a").each(function(){
    if (this.href.indexOf('example-url2.com') >0 ){
        $(this).attr({
            rel: "nofollow"
         });
    }
   });

 //Add Nofollow 3.domain
   $("a").each(function(){
    if (this.href.indexOf('example-url3.com') >0 ){
        $(this).attr({
            rel: "nofollow"
         });
    }
   });

} )( jQuery );
</script>
   <?php
}
add_filter( 'wp_footer', 'cdx_handel_external_links', 999);

или заявление ....

epascarello 24.07.2018 02:49

какое заявление?

Patrick Dreid 25.07.2018 02:40

Ну должен был быть "Оператор ИЛИ" developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

epascarello 25.07.2018 15:25
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
51
2

Ответы 2

Вы можете использовать Array.prototype.includes ():

const urls = ['www.example-url.com', 'www.example-url-1.com', 'www.example-url-2.com'];

$('a').each(function() {
  if ( urls.filter(url => url.includes('example-url.com')).length > 0 ) {
    $(this).attr({
      rel: 'nofollow',
    });
  }
});

Не будет работать, если это частичное совпадение полного URL

epascarello 24.07.2018 02:54

some () на мой взгляд будет лучше, так как он остановится при первом ударе, но фильтр будет работать.

epascarello 24.07.2018 03:24

Мы хотим знать, содержит ли строка href одну из запрещенных подстрок.

let nonFollow = ['example-url.com','example-url2.com','example-url3.com'];

function isNonFollow(anHref) {
    for (i=0; i < nonFollow.length; i++) {
        let href = nonFollow[i];
        if (anHref.indexOf(href) >0) return true;
    });
    return false;
}

$("a").each(function(){
    if (isNonFollow(this.href)){
        $(this).attr({
            rel: "nofollow"
        });
    }
});

Другие вопросы по теме