8
votes

Comment exécuter une fonction JavaScript après qu'un JS spécifique a été chargé?

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);
}


0 commentaires

3 Réponses :


2
votes

Ajoutez ceci à votre fonction:

// all cool browsers
script.onload = doSomething;
// IE 6 & 7
script.onreadystatechange = function() {
if (this.readyState == 'complete') {
    doSomething();
}


0 commentaires

11
votes
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'); });

0 commentaires

1
votes

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
});


0 commentaires