show()函数,在页面其他地方调用是可以的
但是在这段代码中就是不能执行,提示说缺少对象;
两个函数都是在同一个JS文件中
恳请高人帮忙!代码贴在下面:function handle(id){
...
xmlHttp.onreadystatechange = function(){
        if(xmlHttp.readyState == 4){
            show(id);
            alert(xmlHttp.responseText);
        }
    }
...}function show(id){
...
}

解决方案 »

  1.   

    写成show("id")后没有提示,但是也看不到它执行的效果。
      

  2.   

    把show函数放到handle之前,看看能不能用。
      

  3.   


    function handle(id){
    ...
    xmlHttp.onreadystatechange = function(id){
            if(xmlHttp.readyState == 4){
                show(id);
                alert(xmlHttp.responseText);
            }
        }
    ...}function show(id){
    ...
    }
      

  4.   


    function handle(id){
    ...
    xmlHttp.onreadystatechange = function(id){
            if(xmlHttp.readyState == 4){
                show(id);
                alert(xmlHttp.responseText);
            }
        }
    ...}function show(id){
    ...
    }
    这样可以吗?
      

  5.   

    两个函数全部代码贴出来,大家帮忙找找原因function show(id){
        var s_value = document.getElementById(id).value;
        var s_url = "handle.jsp?type=que&p=" + encoder(s_value);
        var xmlHttp;
        try{
            xmlHttp = new XMLHttpRequest();
        }catch(e){
            try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                try{
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(e){
                    alert("您的瀏覽器不支持AJAX!");
                    return false;
                }
            }
        }    xmlHttp.onreadystatechange = function(){
            if(xmlHttp.readyState == 4){
                document.getElementById("d_show").innerHTML = xmlHttp.responseText;
            }
        }
        xmlHttp.open("POST",s_url,true);
        xmlHttp.send(null);
    }function handle(str,id){
        var s_url = "handle.jsp"
        if(str == "add"){
            var grp = document.getElementById("grp");
            var dep = document.getElementById("dep");
            var cop = document.getElementById("cop");
            var s_grp = getParas(grp);
            var s_dep = getParas(dep);
            var s_cop = getParas(cop);
            var s_id = encoder(document.getElementById(id).value);
            s_url = s_url + "?type=add" + "&p=" + s_id + s_cop + s_dep + s_grp;
        }
        if(str == "del"){
            var show = document.getElementById("show");
            var s_show = getParas(show);
            var s_id = encoder(document.getElementById(id).value);
            s_url = s_url + "?type=del" + "&p=" + s_id + s_show;
        }
        var xmlHttp;
        try{
            xmlHttp = new XMLHttpRequest();
        }catch(e){
            try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                try{
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                }catch(e){
                    alert("您的瀏覽器不支持AJAX!");
                    return false;
                }
            }
        }    xmlHttp.onreadystatechange = function(id){
            if(xmlHttp.readyState == 4){          
                alert(xmlHttp.responseText);
                show(id);
            }
        }
        xmlHttp.open("POST",s_url,true);
        xmlHttp.send(null);
    }
      

  6.   


    提示什么?函数里面要调用show(id)肯定要传入参数id的。难道是要把show放前面?
    function show(id){ 
    ... function handle(id){ 
    ... 
    xmlHttp.onreadystatechange = function(id){ 
            if(xmlHttp.readyState == 4){ 
                show(id); 
                alert(xmlHttp.responseText); 
            } 
        } 
    ... } 
      

  7.   

    提示说“对象不支持此操作”
    如果直接给参数show("id")这样也不行
    show函数已经放在了handle的前面了
      

  8.   

     xmlHttp.onreadystatechange = function(id){
            if(xmlHttp.readyState == 4){          
                alert(xmlHttp.responseText);
                show(id);
            }
    你这里是对象xmlHttp的操作,而你show(id)里面又新建了个对象xmlHttp,又给它调用一个函数。问题应该是出在这里。
    还有,你的代码写的太乱,建议创建xmlhttp单独写个函数,匿名函数也可以抽取出来,这样代码不会那么臃肿。
    代码还是写的简洁 清晰好点 好维护看着也爽
      

  9.   

    我不懂你的说,请运行——<script type="text/javascript">(function(xmlHttp, getPath){
          return xmlHttp == null && false || function(){
                 try {
                      xmlHttp.open("GET", getPath, true);
                      xmlHttp.onreadystatechange = function(){
                              xmlHttp.readystate==4&&xmlHttp.status==200&&
                              (show(getPath), alert(xmlHttp.responseText))
                      }    
                      xmlHttp.send(null);
                 }catch(e){}
          }()
    })
    (function(){try{ return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){try{ return new ActiveXObject("Msxml2.XMLHTTP")
          }catch(e){return null}}}(),"http://topic.csdn.net/u/20090701/11/07c76831-4459-4452-aa50-d1c7eac1da27.html?46104");function show(id){
          alert(id)
    }</script>