Sie können das onload
Ereignis des Script-Element für die meisten Browser und eine Callback-Argument verwenden:
Edit: Sie können wirklich nicht die Ausführung des Codes stoppen, wenn Sie Skripts auf diese Weise laden (Und synchrone Ajax-Anfragen zu machen ist meistens eine schlechte Idee).
Aber Sie können Kette Rückrufe, wenn Sie also einen Code haben, der auf beide abhängt, Two.js und Three.js, können Sie Kette die Lade Aktionen, zum Beispiel:
loadScript('http://example.com/Two.js', function() {
// Two.js is already loaded here, get Three.js...
loadScript('http://example.com/Three.js', function() {
// Both, Two.js and Three.js loaded...
// you can place dependent code here...
});
});
Umsetzung:
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 || // IE stuff...
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);
}
Für IE, das onreadystatechange
Ereignis hat gebunden sein.
Wurde diese Frage nicht schon tausend Mal gestellt? –