Newsgroup: it.comp.lang.javascript
Titolo: intervenire su un elemento che ancora non esiste

Problema un po' piï¿œ complicato di quelli che nei giorni scorsi mi avete 
cosï¿œ gentilmente e professionalmente aiutato a risolvere:
Ho uno script che colora di giallo lo sfondo di alcuni div (tanto per 
metterla giï¿œ semplice ed evitare di spiegare dettagli superflui). Fin 
qui tutto bene.
Succede perï¿œ che lo sto provando (da console in Firebug) sulla pagina di 
un sito che, rispondendo a un certo input dell'utente, crea via js un 
nuovo div cosï¿œ che se, ovviamente, richiamo il mio script prima della 
creazione e della comparsa del nuovo div quest'ultimo non viene colorato.
Domanda: esiste un modo per "intercettare" la presenza di nuovi elementi 
e intervenire su di essi?
Le mie approssimative ricerche mi hanno portato a addEventListener
https://developer.mozilla.org/it/DOM/element.addEventListener
che perï¿œ presuppone di avere l'elemento target giï¿œ assegnato, mentre io 
conosco al piï¿œ solo l'id del div che potrebbe venire creato ma ancora 
non esiste.
Spero di essere riuscito a spiegarmi in mnaiera comprensibile. E' 
possibile ottenere ciï¿œ che chiedo? Ancora mille grazie.

 e intervenire su di essi?
Se non vuoi usare direttamente jQuery, prova comunque a scaricarlo e a 
vedere come implementa la funzione live()
Bye.

 non esiste.
Sono riuscito a intercettare la presenza del div implementando il 
seguente codice:
function follow(e)
{
alert(
e.target.id
);
}
document.addEventListener("DOMNodeInserted",follow,false);
Mi dite se è una soluzione accettabile? Grazie.

 e intervenire su di essi?
Si, come nell'altro post hai indicato, ci sono eventi che vengono
scatenati quando il DOM viene manipolato. Il problema? Che non sono
eventi supportati da tutti i browser (vedasi varie versioni di IE).
Quindi dipende dal contesto in cui sei, per che browser devi sviluppare.
-- 
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth."

 Quindi dipende dal contesto in cui sei, per che browser devi sviluppare.
Infatti, ho visto che addEventListener non è supportato da IE. Al suo 
posto c'è attachEvent ma non supporta DOMNodeinserted. Mi sono 
accontentato di vederlo funzionare in FF.
Grazie comunque a tutti. :)

 nuovo elemento.
Cambia poco, non dovresti aver bisogno comuque di intercettare tale
evento, dato che sembra comunque che l'aggiunta sia scatenata da del
codice che tu scrivi in base all'interazione con l'utente. L'impressione
che ho, è che potresti enormemente semplificare il tuo approccio. Se ci
spieghi meglio la questione, posso darti qualche hint in merito. :)


 spieghi meglio la questione, posso darti qualche hint in merito. :)
Sï¿œ, devo essermi spiegato male.
Premessa: sto cercando di imparare JS non per gestire un sito, ma (un 
po' per sfizio, un po' per passione, un po' per ostinazione) per rendere 
piï¿œ comoda la mia navigazione. Cioï¿œ, non ho mie pagine dentro le quali 
scrivere il mio codice, ma vorrei imparare a scrivere un bookmarklet, o 
uno script greasemonkey, o una estensione Firefox, da applicare a pagine 
di siti sul cui sorgente ovviamente non posso intervenire.
Ovviamente sto cercando di fare piï¿œ esercizi possibili per imparare. Nel 
caso in esame, ho provato a scrivere il codice che conta il numero di 
caratteri del testo in un div, o in una cella.
Considera questo esempio (uno tra i tanti):
http://punto-informatico.it/b.aspx?i=3087217
I commenti vengono aperti dinamicamente tramite JS. Se io richiamo il 
mio codice prima, non posso leggere gli elementi che contengono i 
commenti, perchï¿œ ancora non esistono. E, non essendo "padrone" della 
pagina, l'unica possibilitï¿œ che ho trovato ï¿œ quella di intercettare via 
addEventListener la comparsa di nuovi elementi nella pagina.
Spero di essere stato piï¿œ chiaro ora.
Grazie di tutto, e scusate il ritardo nella risposta (cerco di imparare 
qualcosa nei ritagli di tempo).