Ciao a tutti!
Vi espongo brevemente il mio problema: sto testando un'estensione per Firefox 3+ che utilizza addEventListener per eseguire una certa funzione solo dopo il caricamento della pagina nel browser dell'utilizzatore.
Il problema è che, a giudicare dall'output della funzione, sembra che questa venga eseguita prima, e non dopo il caricamento! O forse sbaglio qualcosa io?
La funzione da eseguire è questa:
e viene chiamata tramite:codice:function doSomething(){ var abc = document.getElementsByClassName('gb3'); alert(abc.length); }
Ecco cosa succede quando apro il browser per testare l'estensione: compare un alert che mi indica il numero "0". Quindi nessun elemento con classe "gb3" è stato trovato nella pagina, nonostante che esista!codice:window.addEventListener("load", function() {doSomething()}, false);
Infatti se, visualizzando la medesima pagina appena caricata, io scrivo nella barra degli indirizzi:
ecco che compare giustamente la finestra di alert con il numero "1", a indicare che esiste una classe gb3 nella pagina. Ho anche provato a sostituirre load con DOMContentLoaded, ma con il medesimo risultato.codice:javascript:var abc=document.getElementsByClassName('gb3'); alert(abc.length);
Quindi, o la funzione viene eseguita prima che la pagina sia caricata interamente, oppure viene eseguita correttamente ma per qualche motivo non riesce a fare il suo lavoro.
Se c'è qualche anima buona che ha dei suggerimenti, sono estremamente bene accetti!!
Grazie



Rispondi quotando