if (o.readyState==4)
{
  alert(o.responseXML);
  go()
}直接对window.onload 进行function定义不太合适,虽然这样也不出错,最好使用attachEvent("onload", function(){})这样的结构

解决方案 »

  1.   

    //以前是这样写的
    if(o.readyState==4 && o.status==200)
    {
      alert(o.responseXML)
      go()
    }
    //我觉得现在已经用flase了,不需要再判断了吧
    o.open('GET','b.xml',false)
    //为什么用这种形式,是w3c标准,还是兼容firefox
    attachEvent("onload", function(){})
    并且attachEvent不知道放在哪里哈,直接写在a.js能行吗?请老大指点,谢谢
      

  2.   

    o.readyState==4 是为了判断一个是否正常的状态,万一网络断了或者文件路径不对,那你的代码就不够健壮了。if(!window.attachEvent && window.addEventListener)
    {
      Window.prototype.attachEvent = HTMLDocument.prototype.attachEvent=
      HTMLElement.prototype.attachEvent=function(en, func, cancelBubble)
      {
        var cb = cancelBubble ? true : false;
        this.addEventListener(en.toLowerCase().substr(2), func, cb);
      };
    }
    window.attachEvent("onload", function()
    {
    var o=new ActiveXObject('Microsoft.XMLHTTP'); //若是要兼容,这个对象也要repair
    o.open('GET','b.xml',false)
    o.send(null)
    if (o.readyState==4)
    {
    alert(o.responseXML);
    go()
    }
    });
    若不是这样处理的话,你这样写上一句:
    <body onload="alert('loaded')"> 再看看你原来的运行结果是什么吧!原来的定义被冲掉了!
      

  3.   

    html是按顺序解释的,所以js文件必须读取完了才能继续做后面的事吧~~~