试了各种方法都不好使
主要为了测试加载机制,以便把test.js提取出来加密
《script type="text/javascript" src="test.js" charset="utf-8"》 《/script》
《script》
test();//alert(123);test中就一个函数,弹出123;如此加载一切正常
《/script》
下面我来换种我很钟意的调用方式,就不行了,高手求解:
var str1="test.js";
var oHead=document.getElementsByTagName('head').item(0);
var oScript=document.createElement("script");
oScript.type="text/javascript";
oScript.src=str1;
oHead.appendChild(oScript);
test();//test undefined
我接着试着这几种操作,仍然无效:
1:更换相对绝对路径
2:最先载入:
window.onload=myLoadingJs(...);
$().ready(function(){test();})//still undefined
错误只有一个就是test()未定义,难道加载永远跑调用后面去了吗
//FF
顺便吐糟一下,提问的编辑器太渣了点,开始没光标,接着发不出去,接着遇到是发代码时不易操作,出来好多行虚线神马东西,然后遇到我script包着的js没显示,晕,光标又不见了,我去~
光标还是没出现,我得先打个abc才知道在哪块。顺再吐糟一下,CSDN的邮箱,里面神马东西,太乱了,一天到晚的亮我都找不到哪条造成一直红点的,没原来好了,我回答的问题别人再回答了,也通知我。。。谢谢了额。。。
var str1="test.js";
var oHead=document.getElementsByTagName('head').item(0);
var oScript=document.createElement("script");
oScript.type="text/javascript";
oScript.src=str1;
oHead.appendChild(oScript);
test();//test undefined
失败是因为 加载是一个异步的过程和需要时间
你apend完了(这个时候 script这个标签会加载代码 不过是异步的)
然后你直接 执行test.js里面的代码 当然没有
$.getScript("test.js",
function(){
test();
}
);
这个是jquery的动态加载 你在回调里面执行你的 test();
实际原因就是dom加载完后有一个加载成功的状态事件 浏览器兼容性实现方式不一样 所以不细说了你自己搜索下