Sto caricando alcuni script YUI dinamicamente nel mio codice in risposta a una richiesta Ajax. Il DOM e la pagina sono completamente caricati quando viene effettuata la richiesta: è una risposta per un evento utente.Caricamento dinamico degli script
Aggiungo il tag alla testa, da bambini. Ma mi sono imbattuto in alcuni problemi:
Aggiungo due script YUI ospitati su Yahoo! CDN e uno script in linea del mio responsabile per la creazione di oggetti, l'aggiunta di listener di eventi e il rendering dei widget YUI. Ma io quando il mio script esegue gli script YUI non sono ancora stati caricati e mi danno errori e non funzionano come mi aspetto.
C'è un modo per eseguire il mio script (o definire una funzione da eseguire) quando gli script YUI sono completamente caricati?
Il 'typeof' operatore * sempre * restituisce una stringa, il controllo dovrebbe essere' if (typeof YUI_NAMESPACED_THING! = "Undefined") // ... ' – CMS
Questo è il male strada da percorrere. In primo luogo, probabilmente stai pensando a setInterval oa un setTimeout concatenato, poiché un singolo setTimeout può A) ritardare l'esecuzione troppo a lungo causando un tempo di configurazione della pagina inutilmente scarso, oppure B) fallire la condizione di competizione creata assumendo che gli script vengano caricati all'interno di un certo tempo Qualcosa basato sulla soluzione onload/onreadystatechange è migliore. – Luke
@Luke Stavo pensando a setTimeout incatenato. Ma sì, sono d'accordo sul fatto che onload/onreadystatechange è una soluzione migliore. Sapevo che onload non funzionava da solo e non sapevo che ci fosse una soluzione cross browser in quel vicolo. Ho upvoted la risposta di digitalFresh –