Ho bisogno di caricare alcuni file js in modo dinamico e sequenziale (vale a dire il secondo script viene caricato dopo il caricamento completo del primo, terzo dopo secondo e così via).il modo migliore per caricare script dinamici
Domanda: come rilevare quando uno script è stato caricato? Ho riscontrato problemi con l'evento onload: non si attiva in IE8. Dopo aver letto this, ho cercato di iscriversi a onreadystatechange e scritto molto brutto codice per il caricamento di uno script:
function loadScript(url, callback) {
var isLoaded = false;
var script = document.createElement('script');
script.onreadystatechange = function() {
if ((script.readyState == 'complete' || script.readyState == 'loaded') && !isLoaded) {
if (callback) callback();
}
};
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', url);
document.head.appendChild(script);
};
Potete suggerire una migliore soluzione cross browser senza trucchi del genere?
UPD: Grazie per le risposte. Cosa devo fare se ho bisogno di caricare anche jquery.js (ad esempio, il client ha una vecchia versione) :)?
Per quanto riguarda l'aggiornamento: perché non includere la libreria per il caricamento degli script (ad esempio jQuery) come qualsiasi altro file JavaScript: Non vedo un modo semplice o la necessità di aggiungere dinamicamente la libreria che si intende utilizzare per caricare gli script in modo dinamico. – Preli
@Preli, sarà incorporato in un altro sito con uno script e un tag div. – 2xMax