2012-08-24 6 views
6

Utilizzo di javascript per scaricare in modo asincrono un altro file javascript.Come verificare se uno script caricato in modo asincrono ha terminato il caricamento in javascript

Capisco che questo può essere fatto inserendo un nuovo tag di script nella pagina con l'attributo src impostato sull'URL del file.

Ho anche bisogno di eseguire del codice quando lo script è finito il download. Sto usando yepnope per questo e forniscono "callback" che vengono eseguiti quando lo script ha finito di scaricare ed eseguire.

Come è stato realizzato?

Grazie!

risposta

3

La maggior parte dei caricatori JS farlo tramite l'iniezione di un tag <script> al DOM, e vincolante l'evento onload alla funzione prevista.

yepnope utilizza lo stesso approccio, e si può semplicemente osservare che dal suo source code. La funzione injectJs crea un elemento DOM utilizzando doc.createElement, imposta src e altri attributi necessari utilizzando setAttribute, associa l'evento & onload al callback fornito e infine inserisce l'elemento nel documento.

3

yepnope.injectJs(scriptSource [, callback ] [, elemAttributes ] [, timeout ]); Dritto their website: è sufficiente eseguire il codice necessario per la richiamata corretta in questo modo.

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

Grazie per la risposta. Il problema è che non posso usare yepnope per questo. –

+0

@ChrisDutrow, allora perché dovresti taggare questa domanda con il tag 'yepnope'? – jessegavin

+0

@jessegavin - Ho taggato in quel modo perché ho menzionato yepnope nella domanda. –

1

questo può essere fatto utilizzando jQuery, se volete usarlo, Jquery.getScript()

cassa il link che dà informazioni dettagliate su di esso.