动态加载js文件!
动态加载js文件时,遇到的一个问题
加载后,js里的变量不能立即可用,必须alert一下才能用,怎么解决啊,急
问题点数:100、回复次数:10Top
1 楼lsxaa(小李铅笔刀)回复于 2005-05-17 11:59:25 得分 0
顶一下,Top
2 楼rightyeah(众妙之门)回复于 2005-05-17 12:31:14 得分 10
应该不是alert,而是需要等待一点时间,等它全部加载完毕后,就可以用了。可以考虑用setTimeout代替。Top
3 楼net_lover(【孟子E章】)回复于 2005-05-17 12:35:16 得分 20
不是不可用,要看你的调用的顺序和位置,如果js变量调用页面的对象,比如div等,调用的时候必须等div生成之后才可以调用,不要在页面的前面就调用。你的js脚本最好放到页面的最后,或者调用的时候在<body onload=aaa()里调用Top
4 楼net_lover(【孟子E章】)回复于 2005-05-17 12:36:08 得分 20
通过alert,其实是起到了延时的作用,也就是说,等待页面生成Top
5 楼meizz(梅花雪)回复于 2005-05-17 13:09:32 得分 40
孟子老大已经解释的很清楚了. 若用:
<script>
document.write("<script src=mm.js><\/script>");
</script>
这种方法动态载入的JS文件, 在网页里的实际生成顺序是:
<script>
document.write("<script src=mm.js><\/script>");
//你若是直接在这里就调用 mm.js 里的东东的话当然出错, 因为它还没有被加载
</script>
<script src=mm.js></script>
解决的办法, 孟子的 onload 和 setTimeout defer 等延迟是一个办法, 你也可以这样:
<script>
document.write("<script src=mm.js><\/script>");
</script>
<script>
alert("再加一个script标签, 这样就没有问题了.")
</script>Top
6 楼libao1983(神勇无敌小豹子)回复于 2005-05-17 14:18:48 得分 0
抬头看星星Top
7 楼fason(咖啡人生)回复于 2005-05-17 14:48:03 得分 10
script也有onload事件的Top
8 楼lsxaa(小李铅笔刀)回复于 2005-05-17 14:57:24 得分 0
谢谢各位大师! 以后还要向你们请教!Top
9 楼LCKKING(黑旋风)回复于 2005-05-17 17:55:59 得分 0
真是稳健Top
10 楼wls12342004(青青子木)回复于 2005-05-24 13:38:14 得分 0
星星!!!!!!!!!!Top




