2012-08-24 16 views
6

Używanie javascript do asynchronicznego pobierania innego pliku javascript.Jak sprawdzić, czy załadowany asynchronicznie skrypt zakończył ładowanie w javascript

Rozumiem, że można to zrobić, wstawiając nowy tag skryptu na stronie z atrybutem src ustawionym na adres URL pliku.

Po uruchomieniu skryptu muszę również uruchomić kod. Używałem do tego celu yepnope i zapewniają one "wywołania zwrotne", które są wykonywane po zakończeniu pobierania i wykonywania skryptu.

Jak to się robi?

Dzięki!

Odpowiedz

3

Większość ładowarki JS to zrobić poprzez wstrzykiwanie tag <script> do DOM, i wiązanie jej onload wydarzenie do przewidzianej funkcji.

yepnope używa tego samego podejścia, a po prostu można to zaobserwować na podstawie jego source code. Funkcja injectJs tworzy element DOM przy użyciu doc.createElement, ustawia src i inne potrzebne atrybuty przy użyciu setAttribute, wiąże zdarzenie z wywołaniem zwrotnym i ostatecznie wstawia element do dokumentu.

3

yepnope.injectJs(scriptSource [, callback ] [, elemAttributes ] [, timeout ]); Straight off their website: Po prostu uruchom kod, który potrzebujesz w udanym wywołaniu zwrotnym, tak jak to.

// 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

Dziękuję za odpowiedź. Problem polega na tym, że nie mogę użyć do tego yepnope. –

+0

@ChrisDutrow, dlaczego miałbyś oznaczyć to pytanie tagiem 'yepnope'? – jessegavin

+0

@jessegavin - Oznaczałem w ten sposób, ponieważ wspomniałem yepnope w pytaniu. –

1

można to zrobić za pomocą jQuery, jeśli u chcą go używać, Jquery.getScript()

Zamówienie link daje szczegółowych informacji na jego temat.

Powiązane problemy