关于js动态插入script 标签后页面JS代码执行失败的解决方法

RT,主要是因为加载顺序的问题,为了解决某设备上的JS缓存导致修改文件不能及时更新问题以及方便JS管理,我采用了如下代码进行JS 动态插入

var t = Math.random();
var js_path = "./js/";

function loadJS(script){
    var src = js_path + script +'?r='+t ;
    var script_dom = document.createElement('script');
    script_dom.src = src;
    script_dom.language = 'javascript';
    script_dom.type = 'text/javascript';
    var head = document.getElementsByTagName('head').item(0);
    head.appendChild(script_dom);
}

loadJS("tb.js");
loadJS("button.js");

执行后发现一个问题,原有页面的关联JS代码一直报错,提示 undefine ( 应该没拼错 ),然后检查发现 head 节点成功插入了 script标签,而且顺序是比较前的,于是有点纳闷,经过几番测试后,发现如果是后面动态插入的SCRIPT是会被执行的,只是执行顺序比当前页面的嵌入JS代码更晚一步而已,那么我们为了保证页面代码执行顺序不出错误。
 
通过 给 BODY 增加 Onload 方法,将页面需要嵌入执行的代码放入onload中则问题解决。
 
注:这里也测试了 jQuery 的 ready 事件,发现依然如此,本人为应用开发者,不深究了。
 
穿针引线,请大神拍砖。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值