JS:如何在Javascript代码中添加多个URL?

时间:2018-07-24 00:45:34

标签: javascript php html wordpress function

我在我的wordpress functions.php文件中使用以下代码将nofollow自动添加到特定网址的每个链接中:

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);

2 个答案:

答案 0 :(得分:0)

您可以使用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',
    });
  }
});

答案 1 :(得分:0)

我们想知道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"
        });
    }
});