2011-07-12 104 views
-1

我需要创建一个javascript函数,它将查找并替换我网站上的所有出站链接。这就需要做到以下几点:Javascript查找并替换出站网址

查找不包含所有网址“mysite.com”的网址,如出站链接到anothersite.com

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

这听起来更换网址相对直接...但我有问题。

在此先感谢!

这里是什么我迄今为止的更新替换的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> 

我试过刚开这几种不同的方式对目标使用IF的出站网址声明,但无济于事。

<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

我犯了一个错误,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

不知道有多少,这将有助于但是这是如何跟踪谷歌分析出站链接,我敢肯定它应该工作为你的目的,如果你相应地修改它:

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

来源:http://www.jhuskisson.com/...

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/