动态加载JS脚本的4种方法

实现OPOA(One Page One Application)时,必须使用动态加载js. 也就是在用户选择某个菜单项后,再动态加载对应的全部js到客户端. 

动态加载js的情况很多啊,比如解决ajax跨域问题,就是动态载入一个js脚本。

本文给出的四个方法,前三个是异步加载js。就是js加载和当前js脚本执行是两个线程,先加载完还是先执行当前脚本是不确定的。在加载这些脚本的同时,主页面的脚本继续运行。

第四个办法尝试用XMLHTTP取得要脚本的内容,再创建 Script 对象经过测试,仍然不能解决异步问题

第四种方法还是异步加载,还是会有同样的总是。只是因为加了一句 
  alert( "主页面动态加载JS脚本。"); 

让页面暂停了一下,所以这个时候a.js已经加载完了。 

后一句 

  alert( "主页面动态加载a.js并取其中的变量:" + str );就不出错了。 

如果你注掉第一个alert,还会有这个错误的。应当使用同步而不异步的XMLHTTPRequest来做动态加载。 

另外:OnReadyStateChange 为全部小写。b.js应当为a.js. 

可以再查阅相关资料。这种尝试是好的。

1、直接document.write 
<script language="javascript"> 

    document.write("<script src='test.js'></script>"); 

</script> 



2、动态改变已有script的src属性 
<script src='' + str ); 

</script>