在appendChild上没有加载Jquery脚本

时间:2015-05-20 08:22:04

标签: javascript jquery

我正在使用此代码

动态加载我的脚本文件
<script type="text/javascript">
  var newscript = document.createElement('script');
  newscript.type = 'text/javascript';
  newscript.src = '../static/js/jquery.js';
  document.getElementsByClassName('container')[0].appendChild(newscript);

  var newscript = document.createElement('script');
  newscript.type = 'text/javascript';
  newscript.src = '../static/js/report_app.js';
  document.getElementsByClassName('container')[0].appendChild(newscript);

</script>

它抛出错误,

Reference error: $ is not defined 
report_app.js中的

我想,在解析下一个文件jquery.js时,必须将report_app.js脚本加载到DOM中。

但错误显示,jquery.js未执行。如何确保在运行下一个脚本文件之前加载一个脚本文件?

1 个答案:

答案 0 :(得分:5)

这是因为脚本是异步添加的,您可以使用onload回调

function addScript(path, callback) {
    var newscript = document.createElement('script');
    newscript.type = 'text/javascript';
    newscript.src = path;
    newscript.onload = callback;
    document.body.appendChild(newscript);

}

addScript('http://code.jquery.com/jquery-1.11.2.js', function () {
    addScript('../static/js/report_app.js');
})

演示:Fiddle