本帖最后由 jycjyc 于 2009-06-12 12:07:24 编辑

解决方案 »

  1.   

    links[i].onclick=function(){ 
    alert(this.href);

    把原来的oncilck替换掉拉
    当然不能执行act()啦
      

  2.   

    <a href=javascript:act(document.topsearch.type)>搜索</a>
      

  3.   

    function addListener(element, eventType, listener){
    if (element.addEventListener) {
    element.addEventListener(eventType, listener, false);
    } else if (element.attachEvent) {
    element.attachEvent('on' + eventType, listener);
    } else {
    element['on' + eventType] = listener;
    }
    }var links = document.body.getElementsByTagName("A");
    for (var i = 0; i < links.length; i++) {
    addListener(links[i], 'click', function(){
    alert(this.href);
    });
    }
      

  4.   


    结果alert(this.href);弹出undefined不对哦
      

  5.   

    支持!把这些 onclick 代码删除掉你的链接要执行什么操作?act(document.topsearch.type)要打开一个窗口,链接还要打开一个页面?
    如果链接不打开另外的页面,修改一下<a href="#" onclick="act(document.topsearch.type);return false;">搜索 </a> 注意黑体部分
      

  6.   


    <div class="search_index"> 
    <form action="" method="get" name="topsearch" target="_blank"> 
      <select name="type"> 
      <option value=2>产品 </option> 
      <option value=3>品牌 </option> 
      <option value=5>资讯 </option> 
      <option value=4>企业 </option> 
      <option value=1>求购 </option> 
      </select> 
      <input type="hidden" name="classid" value="2" /> 
      <input type="text" size="40" name="wd" id="wd"/> 
    <p> <a href="#" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    </form> 
    </div> <script language="javascript"> 
    <!-- 
    var SELECTID="1"; function act(bc) { 
    if(bc.value=="1")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="2")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="3")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="4")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="5")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    }
    var obj=document.forms[0].getElementsByTagName("A")[0]
    var act_old=obj.onclick
    obj.onclick=function(){
    alert(this.href);
    act_old()
    }
    </script> 
      

  7.   

    if(bc.value=="5") 

    window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); } 
    }//这个括号去掉
    <p> <a href="#" onclick="act(document.getElementById('type'));">搜索 </a> </p> //改一下
      

  8.   


    只能改var links=document.body.getElementsByTagName("A"); 
    for(var i=0;i <links.length;i++){ 
    links[i].onclick=function(){ 
    alert(this.href); 


    这部分,其他部分不能改。
      

  9.   

    引用 9 楼 caiying2009 的回复:
    还是有问题,这个种做法不通用,如果页面上不止一个<a href></a>结果就错了,继续请高手出招。
      

  10.   


    <div class="search_index"> 
    <form action="" method="get" name="topsearch" target="_blank"> 
      <select name="type"> 
      <option value=2>产品 </option> 
      <option value=3>品牌 </option> 
      <option value=5>资讯 </option> 
      <option value=4>企业 </option> 
      <option value=1>求购 </option> 
      </select> 
      <input type="hidden" name="classid" value="2" /> 
      <input type="text" size="40" name="wd" id="wd"/> 
    <p> <a class="caiying2009" href="#" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="##" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="###" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    </form> 
    </div> <script language="javascript"> 
    <!-- 
    var SELECTID="1"; function act(bc) { 
    if(bc.value=="1")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="2")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="3")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="4")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="5")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    }
    var obj=document.getElementsByTagName("A")
    for (var i=0;i<obj.length;i++){
    var act_old=obj[i].onclick
    if (obj[i].className.indexOf("caiying2009")!=-1){
    obj[i].onclick=function(){
    alert(this.href);
    act_old();
    }
    }}
    </script> 
      

  11.   


    <div class="search_index"> 
    <form action="" method="get" name="topsearch" target="_blank"> 
      <select name="type"> 
      <option value=2>产品 </option> 
      <option value=3>品牌 </option> 
      <option value=5>资讯 </option> 
      <option value=4>企业 </option> 
      <option value=1>求购 </option> 
      </select> 
      <input type="hidden" name="classid" value="2" /> 
      <input type="text" size="40" name="wd" id="wd"/> 
    <p> <a class="caiying2009" href="#" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="##" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="###" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    </form> 
    </div> <script language="javascript"> 
    <!-- 
    var SELECTID="1"; function act(bc) { 
    if(bc.value=="1")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="2")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="3")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="4")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="5")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    }
    var obj=document.getElementsByTagName("A")
    for (var i=0;i<obj.length;i++){
    if (obj[i].className.indexOf("caiying2009")!=-1){
    var act_old=obj[i].onclick
    obj[i].onclick=function(){
    alert(this.href);
    act_old();
    }
    }}
    </script> 
      

  12.   

    要触发多个事件处理器只有用DOM的事件添加方法,或自己模拟一个这样的方法
      

  13.   


    <div class="search_index"> 
    <form action="" method="get" name="topsearch" target="_blank"> 
      <select name="type"> 
      <option value=2>产品 </option> 
      <option value=3>品牌 </option> 
      <option value=5>资讯 </option> 
      <option value=4>企业 </option> 
      <option value=1>求购 </option> 
      </select> 
      <input type="hidden" name="classid" value="2" /> 
      <input type="text" size="40" name="wd" id="wd"/> 
    <p> <a class="caiying2009" href="#" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="##" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="###" onclick="act(document.topsearch.type);">搜索 </a> </p> 
    <p> <a class="caiying2009" href="---">搜索 </a> </p> 
    </form> 
    </div> <script language="javascript"> 
    <!-- 
    var SELECTID="1"; function act(bc) { 
    if(bc.value=="1")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="2")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="3")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="4")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    if(bc.value=="5")window.open("http://www.baidu.com/s?wd="+document.topsearch.wd.value,"_blank"); 
    }
    var obj=document.getElementsByTagName("A")
    for (var i=0;i<obj.length;i++){
    if (obj[i].className.indexOf("caiying2009")!=-1 && obj[i].onclick){
    var act_old=obj[i].onclick
    obj[i].onclick=function(){
    alert(this.href);
    act_old();
    }
    }
    }
    </script> 
      

  14.   

    模拟多事件处理var links = document.body.getElementsByTagName("A");
    for (var i = 0; i < links.length; i++) {
    if (typeof links[i].onclick == 'function') {
    var fn = links[i].onclick;
    links[i].onclick = function(){
    fn();
    alert(this.href);
    }
    } else {
    links[i].onclick = function(){
    alert(this.href);
    }
    }
    }
      

  15.   


    通过改造它的最后一个alert解决了。function addListener(element, eventType, listener){
        if (element.addEventListener) {
            element.addEventListener(eventType, listener, false);
        } else if (element.attachEvent) {
            element.attachEvent('on' + eventType, listener);
        } else {
            element['on' + eventType] = listener;
        }
    }var links = document.body.getElementsByTagName("A");
    for (var i = 0; i < links.length; i++) {
        addListener(links[i], 'click', function(){
            alert(event.srcElement.href);
        });
    }