Je charge mes fichiers de script dynamiquement en utilisant ce code,
<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>
Il lance une erreur comme,
Reference error: $ is not defined
report_app.js
.
Je pensais jquery.js
script jquery.js
doit être chargé dans le DOM lorsque le fichier suivant, report_app.js
est analysé.
Mais l'erreur montre que jquery.js
n'est pas exécuté. Comment garantir qu'un fichier de script est chargé avant d'exécuter le prochain?
C'est parce que le script est ajouté de manière asynchrone, vous pouvez utiliser le rappel de recharge
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'); })
Demo: Fiddle