0

昨日、同様の質問をしたので、すべての外部リンクをホームページにリダイレクトする方法を知りました。

// 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()たが、まだ機能していません。


ここに私が試した2つのコーディングがありますが、失敗しました

// 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';
        }
    });
});

そして、すべての同様の可能性...しかし、それでも私にはうまくいきません。

4

2 に答える 2

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

実例では、アンカータグを調べて、変更されたhrefを確認できます。
これがあなたが探しているものであることを願っています。

于 2013-03-16T21:43:30.820 に答える
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.
}

この助けを願っています。

于 2013-03-16T16:48:31.800 に答える