J'ai fait une fonction JS pour inclure un autre JavaScript dans mon HTML. Je dois m'assurer que le script que j'ai chargé à l'aide de la fonction est doté du traitement terminé puis ne se déplace que dans mon script d'origine.
function loadBackupScript(){ var script = document.createElement('script'); script.src = 'http://www.geoplugin.net/javascript.gp'; script.type = 'text/javascript'; var head = document.getElementsByTagName("head")[0]; head.appendChild(script); }
3 Réponses :
Ajoutez ceci à votre fonction:
// all cool browsers script.onload = doSomething; // IE 6 & 7 script.onreadystatechange = function() { if (this.readyState == 'complete') { doSomething(); }
function loadBackupScript(callback) { var script; if (typeof callback !== 'function') { throw new Error('Not a valid callback'); } script = document.createElement('script'); script.onload = callback; script.src = 'http://www.geoplugin.net/javascript.gp'; document.head.appendChild(script); } loadBackupScript(function() { alert('loaded'); });
Je recommanderais d'utiliser Labjs pour cela.
Utiliser, vous pouvez faire ce P>
$LAB .script("framework.js") .wait(function(){ //called when framework.js is loaded }) .script("init.js") .wait(function(){ //called when init.js is loaded });