Javascript查找并替换出站URL

时间:2011-07-12 11:47:10

标签: javascript html

我需要创建一个javascript函数来查找并替换我网站上的所有出站链接。它需要执行以下操作:

在网址中查找不包含“mysite.com”的所有网址,例如指向anothersite.com的出站链接

将网址替换为http://mysite.com/?redirect=anothersite.com

这听起来相对简单......但我遇到了问题。

提前致谢!

以下是我目前为止更新网址(有效)的更新:

<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语句来定位出站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>

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

不确定这会有多大帮助,但这是如何跟踪Google Analytics的出站链接,我相信如果您相应地修改它,它应该适用于您的目的:

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

答案 2 :(得分: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 = location ...)并把它放在document.ready函数中!

答案 3 :(得分: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/