rocksent 2014-12-03 11:55 采纳率: 0%
浏览 2754
已采纳

js文件加载问题求解,总是报错

试了各种方法都不好使
主要为了测试加载机制,以便把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的邮箱,里面神马东西,太乱了,一天到晚的亮我都找不到哪条造成一直红点的,没原来好了,我回答的问题别人再回答了,也通知我。。。谢谢了额。。。

  • 写回答

1条回答 默认 最新

  • KK3K2005 2014-12-04 07:05
    关注

    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加载完后有一个加载成功的状态事件 浏览器兼容性实现方式不一样 所以不细说了你自己搜索下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 python使用pulp线性优化时报错
  • ¥15 开源或低价数据中台哪个最好
  • ¥15 arduino编程出现字符串疑似覆盖现象
  • ¥15 我的b站在没有碰到屏幕的情况下偶尔会自动跳出进度条,就像在屏幕上点了一下一样,但我并没有点。而且视频进度并没有变。这可能是什么原因造成的?
  • ¥30 STK matlab python仿真
  • ¥15 关于IMageEnView 图标定位问题
  • ¥20 求解答(matlab)
  • ¥30 ffmpeg库使用过程中遇到的问题
  • ¥15 pyqt5 中python如何通过Qtwebchannel主动发消息给web前端
  • ¥15 关于HTML中title获取xml内容的问题