Newsgroup: it.comp.lang.javascript
Titolo: generare un evento e/o crearsene uno personalizzato

Ciao a tutti.
Volevo capire se con js è possibile crearsi un evento... mi spiego.
Ad esempio prendiamo l'evento "onblur"
Posso scrivere <elemento onblur="myfunc()"/>
Quando l'elemento perde il fuoco si attiva myfunc()
Le domande ora sono:
1) Posso ingannare il browser facendogli credere che l'evento onblur si sia
verificato anche se effettivamente non è cosi? [La soluzione lancia
direttamente myfunc() non vale :-)]
2) Posso inventarmi un evento "onmyevent" da scatenare solo quando lo dico
io?
3) Starete pensando: "come mai tutte queste seghe mentali?"  :)
Grazie per i chiarimenti.
--Gabriele

 
Nel DOM2 esiste la possibilita' di creare eventi attraverso l'oggetto 
Event. Ma non credo che siano molti i browser che lo adottino.
-- 
FastFede on WinMx
(eliminare NOSPAM dall'indirizzo)

>> 3) Starete pensando: "come mai tutte queste seghe mentali?"  :)
Lo state pensando!
Ciao.
--Gabriele

sega, ne avrei ricavato maggior soddisfazione.
Mi sono accorto infatti dell'esistena di un post precedente solo da questa
tua affermazione "colorita" ;-)
Dalla mia risposta si evince chiaramente che non avevo letto neanche una
riga del tuo
1° messaggio. :-(
Ciao,
--Gabriele

 ce/handlers.html>
Quello che avevo in testa era una sorta di processi paralleli in js.
Il processo 1 che fa delle cose lancia un signal (l'evento) al processo 2 e
si blocca.
Il processo 2 fa altre cose e quando ha fatto risveglia l'1.
E cosi via.
Una cosa che ricorda molto le fork(), sleep() e compagnia bella, della
programmazione C in ambiente UNIX.
Tutto questo con js!
Infatti potrei ricollegare tale post al discorso fatto nell'altro thread
sul setTimeout a 0 ms..
Ciao.
--Gabriele
P.S. Le scuse per il fraintendimento, le ho messo nell'altro messaggio....
(dove ho cambiato l'oggetto in OT)

 direttamente myfunc() non vale :-)]
Eppure gli eventi funzionano proprio cosi'; ed e' cosi' che li devi
concepire.
Gli eventi non sono altro che "punti di ingresso" che ti danno le
interfacce di determinati oggetti per estenderne e personalizzarne il
funzionamento. Questo sono. In questa ottica, puoi gestirtene quanti te ne
occorre, nella programmazione OOP in JS. 
Ad esempio io ho un oggetto "Wizard" che mi gestisce un certo tipo di
comportamento. Ci sono dei bottoni che mi servono per cambiare "pagina".
L'oggetto e' strutturato in modo tale da incapsulare il codice di gestione
del DOM in modo che sia tutto trasparente all'implementatore. Il mio
oggetto "Wizard" mette a disposizione, tra le altre cose, due eventi
fondamentali: l'onbeforedisplay(), e l'ondisplay() che vengono richiamati
prima di visualizzare effettivamente la pagina, e durante la
visualizzazione della stessa. In realta' io non faccio altro che richiamare
nei punti salienti:
this.onbeforedisplay();
Ovvero assicuro all'implementatore che la funzione che mi associera' a:
mywiz.onbeforedisplay=function(){
	/* do something */
}
venga eseguita nei modi e nei tempi specificati.
Eventi che dipendono dall'interfaccia del browser stesso, invece, puoi
gestirli basandoti su quelli che gia' esistono.. Questo perche' ovviamente
non puoi implementare cose che non sono state neppure prese in
considerazione dal codice sorgente del core. Se quindi vuoi avere un
"onbeforecaptureimagefromwebcam" devi trovare il modo di estendere il
browser in qualche modo (es. su IE con oggetti COM, per esempio).
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)