重定向所有外部链接,除了我不想重定向

时间:2013-03-16 16:02:04

标签: jquery http https httpwebrequest

昨天我问了类似的问题,所以我开始知道如何将所有外部链接重定向到我的主页。

// when the document is ready
$(document).ready(function() {
    // iterate over all the anchor tags
    $("a").each(function() {
        // if the current link's href doesn't already contain 'www.kownleg.com'
        if (this.href.indexOf('www.kownleg.com') === -1) {
            // change current link to home page
            this.href = 'http://www.kownleg.com';
        }
    });
});

但是现在我想要排除所有我不想重定向到我主页的链接,比如facebook.com& twitter.com,我试图为链接制作另一个条件,我不想重定向,但它不起作用。然后,我尝试使用indexOf()更改text(),但仍无效。


这是我试过的两个编码,但我失败了

// when the document is ready
$(document).ready(function() {
    // iterate over all the anchor tags
    $("a").each(function() {
        // if the current link's href doesn't already contain 'www.kownleg.com'
        if (this.href.indexOf('www.kownleg.com') === -1) {
            // change current link to home page
            this.href = 'http://www.kownleg.com';
        }
        if (this.href.indexOf('www.facebook.com') === -1) {
            // change current link to home page
            this.href = 'http://www.facebook.com';
        }
        if (this.href.indexOf('www.twitter.com') === -1) {
            // change current link to home page
            this.href = 'http://www.twitter.com';
        }
    });
});

另一个人:

// when the document is ready
$(document).ready(function() {
    // iterate over all the anchor tags
    $("a").each(function() {
        // if the current link's href doesn't already contain 'www.kownleg.com'
        if (this.href.indexOf('www.kownleg.com') === -1) {
            // change current link to home page
            this.href = 'http://www.kownleg.com';
        }
        if (this.href.text('www.facebook.com') === -1) {
            // change current link to home page
            this.href = 'http://www.facebook.com';
        }
        if (this.href.text('www.twitter.com') === -1) {
            // change current link to home page
            this.href = 'http://www.twitter.com';
        }
    });
});

所有类似的可能性......但仍然不适合我。

2 个答案:

答案 0 :(得分:0)

你需要将它包装在if语句中:

if(
    (this.href.indexOf('www.twitter.com')  !== -1) ||
    (this.href.indexOf('www.kownleg.com')  !== -1) ||
    (this.href.indexOf('www.facebook.com') !== -1)
  ){
  //do what you were doing.
}

希望得到这个帮助。

答案 1 :(得分:0)

你可以试试这个:
在Javascript中

$(document).ready(function() {
  var allowed_links_array = [
    "www.kownleg.com",
    "www.twitter.com",
    "www.facebook.com"
  ];
  var replacement = [
    "http://www.kownleg.com",
    "http://www.twitter.com",
    "http://www.facebook.com"
  ];
  // iterate over all the anchor tags
  $("a").each(function() {
    var index;
    //get the index of the last part of the href attribute after the /
    index = jQuery.inArray(
      this.href.split('/')[this.href.split('/').length - 1],
      allowed_links_array
    );
    //if the link is in the allowed_links_array then set the href to the right link
    if(index !== -1){
      this.href = replacement[index];
    }
  });
});

working example您可以检查锚标记以查看href已更改 我希望这就是你要找的东西。