2011-07-12 6 views
-1

私のサイトのすべてのアウトバウンドリンクを見つけて置き換えるjavascript関数を作成する必要があります。これは、次の操作を実行する必要があります。JavaScriptはアウトバウンドURLを見つけて置き換えます

http://mysite.com/?redirect=anothersite.com

この音を持つURLを交換し

をanothersite.comへのアウトバウンドリンクとしてURLに「mysite.com」を含まないすべてのURLを検索します比較的簡単です...しかし、私は問題があります。

ありがとうございます!私はIFを使用してアウトバウンドURLをターゲットにするだけで、それを得るためのいくつかの異なる方法を試してみた

<script type="text/javascript"> 
onload = function() { 
    for (var i = 0; i < document.links.length; i++) document.links[i].href = 'http://www.mysite.com/redirect.php?' + document.links[i].href 
} 
</script> 

:ここ

は(作品)のURLを置き換えるために、私がこれまで持っているものとアップデートですしかし、役に立たない。

<script type="text/javascript"> 
    onload = function() { 
     for (var i = 0; i < document.links.length; i++) { 
       if (document.links[i].href.indexOf("http://www.mysite.com") == -1) { 
       document.links[i].href = 'http://www.mysite.com/redirect.php?' + document.links[i].href 
       } 
     } 
    } 
</script> 
+1

あなたはこれまでに何がありますか?私たちが助けることができるコードですか? – BGerrissen

+0

私はtypoを作成しました。document.links [i] hrefに "。"がありません。すべては今働いているようです! – sicr

答えて

0

このような何か試してみてください:

$('a').filter(function() { return this.hostname && this.hostname !== location.hostname; }).each(function(){ 
    $(this).attr("href","http://www.mysite.com?redirect="+$(this).attr("href")); 
}); 

JSFiddle

0

ない、これが役立ちますどのくらい確かに、これは、Googleアナリティクスのためのアウトバウンドリンクを追跡する方法です、私はそれが動作するはずと確信していますあなたがそれに応じてそれを修正すればあなたの目的のために:

<script type=”text/javascript”> 
if (document.getElementsByTagName) { 
var ahrefs = document.getElementsByTagName(‘a’); 
for (var i=0; i<ahrefs.length;i++) { 
if (ahrefs[i].href.indexOf(‘http://www.jhuskisson.com‘) == -1 && !ahrefs[i].onclick) { 
ahrefs[i].onclick = function() { var track = this.href + ”; urchinTracker (‘/outgoing/’+track.substring(7)); } 
} 
} 
} 
</script> 

出典:これに

0
var my_links = document.getElementsByTagName("a"); 
    for (var i=0;i<my_links.length;i++){ 
     if(my_links[i].href == <my site>){  
      my_links[i].href = location.replace(<whatever>);  
     } 
    } 

作業(問題ないはずですが、それをしようとしなかった、私はそのmy_links [i]が.HREF =場所...についてはよく分からない)とdocument.ready関数の中に置きます!

0

jQueryでこれを行うことができます。

$('a').filter(function(){ 
    if($(this).attr('href') != "http://www.mysite.com"){ 
     $(this).attr('href', 'http://mysite.com/?redirect=' + 
     $(this).attr('href')); 
    } 
}); 

http://jsfiddle.net/jasongennaro/XETqL/

関連する問題