html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>a</title>
</head><body>
<script language="javascript" src="1.js"></script>
</body>
</html>
1.js
var c;
document.write("<script src=\"2.js\" language=\"javascript\"><\/script>");
document.write(c);
2.js
c = "aaa";
显示的结果却是:undefined 
该怎么写啊?
搜索他们讲的方法基本上都试过了

解决方案 »

  1.   

    作用域的问题吧 c在1.js中定义的话 在2.js中赋值的话 1.js中的c 不变吧 如果给1.js中的c初始化的话 就不会报undefined了吧
      

  2.   

    改成了这样:
    2.js
    var my_a_id = "aaa";
    1.s
    document.write("<script src=\"2.js\" language=\"javascript\"><\/script>");
    document.write(my_a_id);结果什么都没显示
      

  3.   

    你那个是异步了,会有浏览器兼容问题的,
    document.write(my_a_id);这句执行的时候,2.js还没加载完毕,你可以在window.onload或者自己加个回调处理
      

  4.   

    如果想让1.js中的变量获取2.js的赋值 需要把my_a_id定义为全局变量 在html 中进行定义,在html文件中加入<script language="javascript">var my_a_id = "";</script>,2.js中my_a_id = "aaa";
      

  5.   

    尽量少用 document.write动态导入js:// 动态导入js
    function include(src,encoding,fun) 

        var s = document.createElement('script');   
        s.type='text/javascript';
        s.charset=encoding; //'gb2312';
        s.src = src;   
        var tags =document.getElementsByTagName('head');   
       if(typeof(fun)=='function'){
            if( document.all ){
               s.onreadystatechange = function(){
                    if(/(complete|loaded)/.test(this.readyState)){
                          fun(); s.onreadystatechange = null; s.parentNode.removeChild(s); 
                     }};
           }else{
                 s.onload = function(){  fun(); s.onload = null; s.parentNode.removeChild(s); };
           }
        } 
        tags[0].appendChild(s); 
    };
      

  6.   

    <script>
    var c;
    document.write("<script src=\"2.js\" language=\"javascript\"><\/script>");
    </script><script>
    document.write(c);
    </script>
    分开写
      

  7.   

    动态加载script标签
    也可以参考这个
      

  8.   

    浏览器解析完documemt.write()所在文档内容后才会继续解析document.write()输出的内容,就是说打印出c的时候c是还没有被赋值的。