2012-08-24 8 views
6

Verwenden von Javascript asynchron zum Download einer anderen Javascript-Datei.Wie überprüft man, ob ein asynchron geladenes Skript in JavaScript geladen wurde

Ich verstehe, dass dies getan werden kann, indem Sie ein neues Skript-Tag auf der Seite mit dem src Attribut auf die Datei URL festgelegt.

Ich muss auch etwas Code ausführen, wenn das Skript fertig heruntergeladen wird. Ich habe dafür yepnope verwendet und sie bieten "Callbacks", die ausgeführt werden, wenn das Skript heruntergeladen und ausgeführt wurde.

Wie wird das erreicht?

Danke!

Antwort

3

meisten JS Lader tun dies einen <script>-Tag auf das DOM über die Injektion und die Bindung seiner onload Ereignis Ihre bereitgestellte Funktion.

yepnope verwendet den gleichen Ansatz, und Sie können einfach beobachten, dass von seiner source code. Die Funktion erstellt ein injectJs DOM-Element unter Verwendung von doc.createElement setzt src und andere benötigten Eigenschaften unter Verwendung setAttribute, das onreadystatechange & onload Ereignis an den vorgesehenen Rückruf binden, und schließlich fügt das Element in das Dokument.

3

yepnope.injectJs(scriptSource [, callback ] [, elemAttributes ] [, timeout ]); Geradeaus their website: Sie führen einfach den Code, den Sie in den erfolgreichen Rückruf benötigen, wie so.

// Example 
yepnope.injectJs("jquery.js", function() { 
    console.log("It is finished loading and I can do whatever I need to here"); 
}, { charset: "utf-8" }, 5000); 
+0

Vielen Dank für Ihre Antwort. Das Problem ist, dass ich Yepnope dafür nicht benutzen kann. –

+0

@ChrisDutrow warum würden Sie dann diese Frage mit dem 'yepnope' Tag versehen? – jessegavin

+0

@jessegavin - Ich habe auf diese Weise getaggt, weil ich in der Frage yepnope erwähnt habe. –

1

kann dies mit Jquery erfolgen, wenn u es, verwenden möchten Jquery.getScript()

Kasse der Link gibt es detaillierte Informationen über sie.