Hallo,
die Scripte werden asyncron nachgeladen, aber <script> kennt das Load-Event, über das eine Callback-Funktion aufgerufen werden kann. Hier mal „mein“ Scriptnachlader:
LoadScript = function(url,callback) {
var scr = document.createElement('script');
scr.type = "text/javascript";
scr.async = "async";
if(typeof(callback)=="function") {
scr.onloadDone = false;
scr.onload = function() {
if ( !scr.onloadDone ) {
scr.onloadDone = true;
callback();
}
};
scr.onreadystatechange = function() {
if ( ( "loaded" === scr.readyState || "complete" === scr.readyState ) && !scr.onloadDone ) {
scr.onloadDone = true;
callback();
}
}
}
scr.onerror = function() {
console.log(url + " konnte nicht geladen werden.";
}
scr.src = url;
document.getElementsByTagName('head')[0].appendChild(scr);
} // LoadScript
Ob das „onreadystatechange“ noch nötig ist, habe ich noch nicht geprüft.
Ich habe hier explizit scr.async = "async"; gesetzt, um sicher zu sein, das asyncron geladen wird. Ohne war das Verhalten bei meinen Tests vor mehreren Jahren browserabhängig.
Gruß
Jürgen