参考网址:http://blog.sina.com.cn/u/47243df301000231

解决方案 »

  1.   

    参考网站:http://www.knowsky.com/338902.html
      

  2.   

    //文件a.js
    var a = "Hello";//文件b.js
    alert("来自b.js");
    alert(a);//c.js
    document.write("<scr" + "ipt type='text/javascript' src='a.js'><\/script>");
    document.write("<scr" + "ipt type='text/javascript' src='b.js'><\/script>");//主文件
    <script language="javascript" type="text/javascript" src="c.js"></script>
      

  3.   

    我个人理解是这样的
    a.html
    <script language="javascript" src="f1.js"/>
    <script language="javascript" src="f2.js"/>浏览器会先访问a.html
    然后请求访问f1.js
    然后请求访问f2.js
    都载入完成后会激发page_load事件所以不能判断f1.js先载入完成还是f2.js先载入完成,也没有必要判断
    而是在f1.js/f2.js中只放入逻辑关系,比如定义好的js类/方法/全局变量
    然后将事件的处理放入page_load中
      

  4.   

    可以用setTimeout延时暂行,因为.....请运行以下代码。<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>never-online dynamic code test page</title>
    </head>
    <body id="http://www.never-online.net">
    <pre>readyState的含义
     - uninitialized : 脚本对象刚被创建,脚本代码未载入;
     - loading : 脚本代码载入中;
     - loaded : 脚本代码完成读入,但尚未开始解释执行;
     - interactive : 解释执行过程中;
     - complete : 脚本已经执行完成。</pre>
    <div id="viewer"></div>
    <script type="text/javascript">window.onerror=function(msg,url,line){
      document.getElementById("viewer").innerHTML+='<p style="color:red">错误:'+msg+'line:'+line+'</p>';
      return true;
    }function bar(u) {
      var x=document.createElement("SCRIPT");
      x.src=u;
      x.defer=true;
      document.getElementsByTagName("HEAD")[0].appendChild(x);
    }
    bar("a.js");(function getReadyState(){
      var e=document.getElementById("viewer")
      var x=true;
      var a = document.getElementsByTagName("SCRIPT");
      for (var i=0; i<a.length; i++) {
        if (a[i].readyState=='complete' && x!=false) x=true; else x=false
        e.innerHTML+=(a[i].src?a[i].src+':':'noname:')+a[i].readyState+"<br />";
      }
      e.innerHTML+="<hr/>";
      if (x) window.clearTimeout(window.timer); else
      window.timer=window.setTimeout('getReadyState()',1000);
    }());foo();</script>
    <script type="text/javascript">
    //<![CDATA[
    foo();
    //]]>
    </script>
    </body>
    </html>详细:
    http://blog.never-online.net/article.asp?id=73