var oXMLDoctry
  { oXMLDoc = new ActiveXObject("Microsoft.XMLDOM");            //创建'MSXML'对象
  }catch(e){
    oXMLDoc = document.implementation.createDocument("text/xml", "", null);
  }
   
var theUniqueID= 0;
var iTimerID=null;        //这个变量是作定时器的IDfunction UploadData(d1)    
{
theUniqueID = (new Date()).getTime() % 1000000000; // 清除原始数据
document.getElementById("PercentDone").style.width = "0%";
document.uploadimg_form.action = "/up_inc/demo.asp?ProgressID=" + theUniqueID +"&showID=" + d1;  //处理上传数据的程序
//将提交的数据放在一个名字是upload隐藏的iframe里面处理,这样提交的页面就不会跳转到处理数据的页
document.uploadimg_form.target="upload"  
document.uploadimg_form.submit();     //提交表单 ProgressBar();      //开始执行反映上传情况的函数}function ProgressBar()
{    sURL = "/Ucenter/up_inc/Progress_Xml.asp?ProgressID=" + theUniqueID + "&temp="+Math.random();      //获取上传状态数据的地址

    oXMLDoc.onreadystatechange = Function( "fnLoadComplete();" ); 
    oXMLDoc.async = true;  
    

}问题在这一句
oXMLDoc.onreadystatechange = Function( "fnLoadComplete();" ); Function是一个什么函数?怎么用的?
为什么demo.asp上传完了,也用JS把上传后的地址传回parent了。这里依然没有调用?

解决方案 »

  1.   

    隐藏iframe上传就可以了
    oXMLDoc.onreadystatechange = Function( "fnLoadComplete();" ); 
    应该是一个回调,Function( "fnLoadComplete();" ); 应该返回一个函数
    fnLoadComplete()是方法名称
    function Function( fn ) {
        if (eval(fn) typeof == "function") {
            return eval("fn");
        } else {
            return function () {};
        }
    }
      

  2.   

    调用的问题现在是解决了。但是又有 一个问题了。返回函数里是这样写的。
    function fnLoadComplete()
      {
    var iReadyState;
        try
        {
            iReadyState = oXMLDoc.readyState;
        }
        catch(e)
        {
            return;
        }
            if(  iReadyState != 4 && iReadyState != "complete" ) return;
        
        if( oXMLDoc == null || oXMLDoc.xml == "" )
    {
    window.status = 'Xml load fault';
    return;
    }
       
    var oRoot = oXMLDoc.documentElement;     //获取返回xml数据的根节点
    if(oRoot != null)  
    { if (oRoot.selectSingleNode("ErrorMessage") == null)
    {

    }
    else
    {

    }
    }}
    这里的  oXMLDoc.documentElement总是取到为null这是为什么呢?
    readState返回的是4