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 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名