我有一个方法 function click(uri,id)
     {
        var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");        
        var url = "/"+uri+".aspx";
        xmlhttp.open("POST",url,false);        
        xmlhttp.send("");        
        var result =xmlhttp.responseText;
        if (result !=null)
        { 
            result;
        } 
     }         
有一ASPX页 直接Response.Write("alert('a');");
请问如何让这个JS正确执行呢?换成
if (result !=null)
        { 
            document.getElementById(id).onclick=function(){result;};
        } 也执行不了。求助!!! 

解决方案 »

  1.   

    Response.Write("<SCRIPT>alert('a');</SCRIPT>");
      

  2.   

    function click(uri,id)
         {
            var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");        
            var url = "/"+uri+".aspx";
            xmlhttp.open("POST",url,false);        
            xmlhttp.send("");        
            var result =xmlhttp.responseText;
            if (result !=null)
            { 
                result;
            } 
         }         
    你的这个是需要callback函数的.
      

  3.   

    Response.Write("alert('a');");这句什么干什么的?
      

  4.   

    1. 你需要一个回调函数(callback function)来处理XMLHttpRequest对象返回的数据。
    2. aspx页面最好也加一个Response.End();
    以下是给你的示例:
    function doClick(uri)
    {
    var xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");        
    var url = "/" + uri + ".aspx";
    xmlhttp.open("POST",url,false); 
    xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4) {
    if(xmlhttp.status == 200) {
    eval(xmlhttp.responseText);
    }
    }
    };
    xmlhttp.send("");
    }
    window.onload = function() {
    var uri = 'some uri';
    document.getElementById('your_id').onclick = function(event) {
    doClick(uri);
    };
    };
    切忌要在IE浏览器上运行,因为你的XMLHTTP对象并没有兼顾到Firefox等非IE浏览器。Enjoy!