J'ai créé la fonction suivante pour pouvoir charger les fichiers JavaScript de manière programmatique :
Utilisation :
loadScript('http://site.com/js/libraryXX.js', function () {
alert('libraryXX loaded!');
});
Mise en œuvre :
function loadScript(url, callback) {
var head = document.getElementsByTagName("head")[0],
script = document.createElement("script"),
done = false;
script.src = url;
// Attach event handlers for all browsers
script.onload = script.onreadystatechange = function(){
if ( !done && (!this.readyState ||
this.readyState == "loaded" || this.readyState == "complete") ) {
done = true;
callback(); // execute callback function
// Prevent memory leaks in IE
script.onload = script.onreadystatechange = null;
head.removeChild( script );
}
};
head.appendChild(script);
}
J'utilise un argument de fonction callback, qui sera exécuté lorsque le script sera chargé correctement.
Notez également que le script
est supprimé de l'élément head
après qu'il soit chargé et que je retire le load
y readystatechange
en leur attribuant la valeur null
qui a pour but d'éviter les fuites de mémoire dans IE.
Vérifiez un exemple d'utilisation ici .