如题啊,求大神指点

解决方案 »

  1.   

    什么意思,我第二个js想得到第一个js运行完dom的状态,不是第一个js刚刚运行到一半的结果,但试了很多方法都不行啊
      

  2.   

    <script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $.getScript("script1.js").done(function() {
      $.getScript("script2.js").done(function() {
        $.getScript("script3.js");
      });
    });
    </script>
      

  3.   

    需要在外链的js里加入回调事件,通知后续的js开始加载,也就相当于1楼所说的,如果控制不了外链,就没办法处理
      

  4.   

    4楼的方法好像不行啊,结果还是第二个js获得不是第一个js的最终结果。
      

  5.   

    Lz,你这样试试
    <script type="text/javascript" id="script_one"></script>
    <script type="text/javascript" id="script_two"></script>
    <script type="text/javascript" id="script_three"></script><script type="text/javascript">
    function Load(a,b,c) { 
        var script = document.getElementById(a); 
        script.src = b; 
        if (script.readyState) { 
            script.onreadystatechange = function() {
                if (script.readyState == "loaded" || script.readyState == "complete") { 
                    script.onreadystatechange = null; 
                    c && c(); 
                }
            }; 
        } else if(c){
            script.onload = c; 
        } 
    }
    window.onload=function(){
        Load('script_one','js1.js',function(){
            Load('script_two','js2.js',function(){
                Load('script_three','js3.js',null)
            })
        })
    }
    </script>
      

  6.   

    4L的应该可以
    不过 lz估计是有异步的代码
    所以无效
      

  7.   

    4楼应该是可以,你也可以尝试下面的方法
    Javascript文件加载:LABjs和RequireJS-加载js
      

  8.   

    按顺序放在<head></head>里就行了
      

  9.   

    没错。怎么整那么复杂。
    <script type="text/javascript" src="theforever_csdn1.js"></script>
    <script type="text/javascript" src="theforever_csdn2.js"></script>
    这样肯定是第一个先执行完的。然后再执行第二个。这是系统机制规定的。
    但先执行,不等于一定马上就有结果,比如你第一个里面有异步AJAX调用的话。
    楼主好好看看异步调用的使用方法吧。要确保在其返回后再执行其它内容,有两个方法:
    1.修改第一个JS,设置异步调用的回调函数,在返回成功时执行第二个JS里的方法。
    2.如果不能修改第一个JS,也可以做到。就是在第二个JS里面把第一个JS里的回调函数重载一下。
      var theforever_csdn=旧回调函数的名称;
      旧回调函数的名称=function()
        {
          theforever_csdn();//执行旧回调函数的功能(这个写不写,根据你的情况决定)
          第二个JS要干的事情;
        }
    这样的话,当第一个JS异步调用返回开始调用回调函数时,就会执行你重定义的函数了,使你想干的事情在它完成后能去做。