求救高人:js嵌套js 无效
html代码:
HTML code
<!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
JScript code
var c;
document.write("<script src=\"2.js\" language=\"javascript\"><\/script>");
document.write(c);
2.js
JScript code
c = "aaa";
显示的结果却是:undefined  
该怎么写啊?
搜索他们讲的方法基本上都试过了
------解决方案--------------------你那个是异步了,会有浏览器兼容问题的,
document.write(my_a_id);这句执行的时候,2.js还没加载完毕,你可以在window.onload或者自己加个回调处理
------解决方案--------------------如果想让1.js中的变量获取2.js的赋值 需要把my_a_id定义为全局变量 在html 中进行定义,在html文件中加入<script language="javascript">var my_a_id = "";</script>,2.js中my_a_id = "aaa";
------解决方案--------------------
尽量少用 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);  
};
------解决方案--------------------
------解决方案--------------------浏览器解析完documemt.write()所在文档内容后才会继续解析document.write()输出的内容,就是说打印出c的时候c是还没有被赋值的。