日期:2014-05-16  浏览次数:20391 次

看看这js代码,帮忙改一下
JScript code

<script type="text/javascript">
function replaceUrl(a){
    var re=/(www.googo.com|forum.csdn.net)(\S*)(\?)/g;
    return a.replace(re,"www.baidu.com$2$3");
}
window.onload=function(){
    var links=document.links;
    for(i=0;i<links.length;i++){
        var url=replaceUrl(links[i].getAttribute("href"));
        links[i].setAttribute("href",url)
    }
}
</script>



这段js是改变文本中url域名,很好用,但是因为是明改,对于会员体验度不好,希望可以改为点击后在改变域名,

例如:http://forum.csdn.net/Post.aspx?ID=467d91e3,
使用以上js其在文本中直接体现改变后的结果http://www.baidu.com/Post.aspx?ID=467d91e3
希望改为点击后在改变此url。
万分感谢!!!


 另外:下面这句js是在url后面加上参数
JScript code

 for(var i=0;i<a.length;i++) a[i].href = a[i].href.indexOf('baidu.com')!=-1? a[i].href:a[i].href+"&erl=lo1";



以上是在baidu.com以外所有url后面加上参数,想改的是指定baidu.com域名后面才加上参数,其他的不加。

谢了!!!!

------解决方案--------------------

闭包问题。修正一下吧

JScript code
window.onload=function(){
    var links=document.links;
    for(i=0;i<links.length;i++){
        var url=replaceUrl(links[i].getAttribute("href"));
        ////下面这句,按你自己的需要,放在适当的位置
        if(url.indexOf('baidu.com')==-1){
            url+="&erl=lo1";
        };
        links[i]["url"]=url;
        links[i].onclick=function(){
            this.setAttribute("href",this.url);
        }
    }
}