用<script>方式加载是同步的,不会有你说的问题

解决方案 »

  1.   

    不过,要调用外部js中的函数时要另写一个 <script></script> 标签
    <script type="text/javascript">
    document.write(unescape("%3Cscript src='http://www.xxcom/a.js?a=x' type='text/javascript'%3E%3C/script%3E"));
    </script>
    <script type="text/javascript">
    xxx()//调用a.js中的函数
    </script>不要这样
    <script type="text/javascript">
    document.write(unescape("%3Cscript src='http://www.xxcom/a.js?a=x' type='text/javascript'%3E%3C/script%3E"));
    xxx()//调用a.js中的函数
    </script>
      

  2.   


    调用代码放 载人js后面
    或者 onload 事件中调用
      

  3.   

    谢谢,这下明白了,我之前也发现在一个scrip内调用多个document.write是异步执行的。
      

  4.   

    给你一个异步加载js的方法,如果你需要调用它的变量,可以把操作放到回调函数里。function loadScript(url, callback) {    callback = callback || (function () { });    var script = document.createElement("script")
        script.type = "text/javascript";
        if (script.readyState) { //IE
            script.onreadystatechange = function () {
                if (script.readyState == "loaded" || script.readyState == "complete") {
                    script.onreadystatechange = null;
                    callback();
                }
            };
        } else { //Others
            script.onload = function () {
                callback();
            };
        }
        script.src = url;
        document.getElementsByTagName("head")[0].appendChild(script);
    }