Javascript查找并替换出站URL

Javascript find and replace outbound URLs

本文关键字:URL 换出 替换 查找 Javascript      更新时间:2023-09-26

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

查找url中不包含"mysite.com"的所有url,例如到anothersite.com 的出站链接

将URL替换为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语句将其作为出站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>

试试这样的东西:

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

JSFiddle

不确定这会有多大帮助,但这是如何跟踪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/...

    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函数中!

您可以使用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/