0

このリンクの免責事項スクリプトにアウトバウンド リンクを渡すコード スニペットを見つけました。

http://snipplr.com/view/28917/

$(document).ready(function() {

   // BEGIN redirect all outbound links through tracker page
   $("a").click(function(){ 

      // if it's a full URL...
      if ($(this).attr("href").indexOf("http")==0) {

         // if it doesn't go to our site
         if (!/^http(s){0,1}(.){0,3}(www){0,3}(\.){0,1}testando\.br/.test($(this).attr("href"))){

            // send it through the linkout page
            $(this).attr("href","/linkoutpage.php?p=" + $(this).attr("href"))

         }
      } 
   })
   // END redirect all outbound links through tracker page

};

ただし、スクリプトを介してすべてのリンクをリダイレクトしています。誰かが私を助けてくれますか?ドメイン「www.testando.br」でテストしています。

編集:すべてのリンクに「linkoutpage.php?p=THEURL」を手動で追加する必要なく、スクリプトを介してすべての外部リンクを渡そうとしています。このスクリプトを見つけましたが、どういうわけかすべてのリンクがそれを通過しています

4

1 に答える 1

2

さて、私はこのスクリプトをより明確なものに書き直します:

$(document).ready(function() {
  $("a").click(function() {
    var href = this.href;
    var ourDomainRegex = /^https?:\/\/(www[.])?testando[.]br/;
    // those seeking flexibility, consider this: 
    // new RegExp('^https?:\\/\\/(www[.])?'  +  ourDomain)

    if (href.indexOf("http") === 0   &&   ! ourDomainRegex.test(href) )
    {
      this.href = "/linkoutpage.php?p=" + href;
    }
  });
});

これが遊ぶためのフィドルです。

それでも、あなたが与えたコードとの意味のある違いを見つけることができません。JavaScriptエラーがないことを確認しますか(コンソールでエラーを確認します)?

于 2012-09-04T14:50:23.293 に答える