window.onload=function(){
  var a = document.getElementsByTagName("a");
  for(var i=0;i<a.length;i++) a[i].href = a[i].href.indexOf("baidu.com")!=-1?"http://127.0.0.1/go.php?url=" + a[i].href:a[i].href;
}这段js是指定文本中url前加上字串,想让文本页面清洁一点,就是显示原有的url,点击后在改变,
这个加进去,不成功,
var url= a[i].href;
a[i].onclick=function(){
this.setAttribute("href",this,url);}
请高手帮个忙吧!!

解决方案 »

  1.   

    你的问题在于:你是先触发onclick事件,然后再去改变a的链接;可是实际上,js触发了onclick事件后,回去执行原来的href,而你修改后的新的href是没有执行到的,除非你再次调用onclick事件。简单的办法,就是你在触发onclick事件之前,改变原来的href,然后再去执行onclick事件,比如,你可以再鼠标悬停事件时改变href.... 希望我的建议对你有帮助。
      

  2.   

    window.onload=function(){  
    var a = document.getElementsByTagName("a");  
    for(var i=0;i<a.length;i++) 
    a[i].href = a[i].href.indexOf("baidu.com")!=-1?"http://127.0.0.1/go.php?url=" + a[i].href:a[i].href;
    for(i=0;i<a.length;i++){
    alert("a="+a[i].href);
    }
    }其实对应的链接地址,你在onload里面已经修改了,在点击的时候,就会进行链接了,不知道你说的是什么意思?
      

  3.   

    function aa(a){
    a.onclick = function(){a.href = a.href.indexOf("baidu.com")!=-1?"http://127.0.0.1/go.php?url=" + a.href:a.href;
    alert(a.href);
    };
    }
    window.onload=function(){  
    var a = document.getElementsByTagName("a"); 
    for(var i=0;i<a.length;i++) {
    aa(a[i]);
    }
    }这样修改,看是不是你要求的效果,如果是这样的话,建议去看一下闭包的概念
      

  4.   

    window.onload=function(){
      var a = document.getElementsByTagName("a");
      for(var i=0;i<a.length;i++) a[i].onclick = function(){
        if(this.href.indexOf("baidu.com")!=-1)this.href="http://127.0.0.1/go.php?url=" + this.href;}
    }onclick事件先触发,然后再试转向,所以在onclick里面设置就行了
      

  5.   

    onclick事件先触发,然后再试转向,所以在onclick里面设置就行了
    这个说的没错。