Newsgroup: it.comp.lang.javascript
Titolo: IE e cattura eventi.

Voglio catturare l'evento dello spostamento del mouse con IE 5.5; con
NN 4.7 faccio così:
<SCRIPT language="javascript">
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = alert("hai mosso il mouse");
</SCRIPT>
Non esistendo in IE 5.5 il captureEvents come faccio a simularlo??
Avevo pensato ad un timer ma mi sembra un pò dispendioso in termini di
risorse.
Grazie, Stefano
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 S P Y R O
Uno dei combattenti Sardus: il Super Sardyan
               ICQ:#63959125
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 risorse.
Potrebbe essere un'idea........riempi una pagina e prova questo....
<html>
<head><script language="JavaScript"><!--
  var pr = new Date();
  pre=pr.getTime();
  function muovi() {
  var or = new Date();
  ora=or.getTime();
      if (document.all && ora > (pre + 150)) {
         window.scrollTo(window.event.x,window.event.y);
         pre = ora;
     }
 }//--></script>
<title></title>
</head>
<body onMouseMove="muovi()">
testo
</body></html>
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________
http://www.jsdir.com
____________________
*¢ L'unica certezza nella vita è che tutto è relativo (per fortuna)¢*

 risorse.
Per carita', lascia stare i timer.. come dici giustamente anche tu, uccidono
le risorse di sistema e vanno usati con parsimonia e solo quando ce n'e'
realmente bisogno.
Per catturare l'evento in IE devi semplicemente omettere il capture events.
Es.
<SCRIPT language="javascript">
    function response(){
        alert("hai mosso il mouse");
    }
    if (document.layers) document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = response;
</SCRIPT>
Ecco qua.

       if (document.all && ora > (pre + 150)) {
ma cosa significa quel "150"?
ad occhio e croce basterebbe un 1, no?


Sono andato sul sicuro , non si sà mai eheheh:-))))))))))))
scherzi a parte, .....in teoria sì però è sempre meglio provare!!


    document.onmousemove = response;
piuttosto:
with(document){
  if(typeOf(onmousemove)!="undefined"){
    if(typeOf(captureEvents)!="undefined"){
      captureEvents(Event.MOUSEMOVE)
    }
    onmousemove = response
  }
}
che non so nemmeno se funziona ma mi sembra più corretto :)

 che non so nemmeno se funziona ma mi sembra più corretto :)
Hype, ma che cosa inzuppi nel latte a colazione, ultimamente? :))


Ciao a tutti
Ho provato il codice suggerito da ZERO (NN 4.7 e IE 5.01), l'evento
viene rilevato correttamente ho incontrato perň un problema: dopo
l'apertura del messaggio di alert se faccio click su OK non si chiude,
ho provato con invio (pensando che facendo il click posso muovere
inavvertitamente il mouse) ma rimane sempre aperto.
In pratica sia con NN che con IE non posso chiudere il messaggio e
per sbloccare il browser sono costretta a terminare l'applicazione.
E' possibile risolvere il problema? Grazie
Camilla

 E' possibile risolvere il problema? Grazie
E' perche' entra in loop.
In effetti, tecnicamente parlando mettere un alert non condizionato in
document.onmousemove non e' una molto utile. ^__-
Avevo semplicemente ricorretto l'esempio l'esempio di Spyro, per questo
l'avevo lasciato.
Cmq sia, una volta che ti appare il messaggio di alert, invece che cliccare
con il mouse, porta il mouse *fuori* dalla finestra del browser, e premi OK
con il tasto invio finche' non sparisce (su IE dovrebbe andare via alla
prima).



>Hype, ma che cosa inzuppi nel latte a colazione, ultimamente? :))
biscotti (cookies... :))))))

</SCRIPT>
E dire che il mio script era proprio uguale al tuo solo che io (come
un idiota) ci avevo inserito un timer che richiamava la funzione (in
questo caso response).... che stupido.. ^__^
Grazie


 biscotti (cookies... :))))))
gh... ^_____^
Cmq sia, in quanto a metodologia e' sicuramente piu' corretta quella che hai
dato tu (leggasi, se fossi stato ancora scuola, durante un compito anche io
avrei fatto cosi 8) ), ma obiettivamente se su ogni script si dovesse
checkare ogni singolo oggetto/evento prima di usarlo ci verrebbero le
pergamene del mar morto, in quanto a lunghezza... :)


 *
 */
function get(id){
  var undef="undefined"
  with(document){
    /* Mozilla 5 */
    if(typeOf(getElementById)!=undef){return getElementById(id)}
    /* Mozilla 4 */
    else if(typeOf(all)!=undef){return all[id]}
    /* Netscape 4 (fuori standard) */
    else if(typeOf(layers)!=undef){return layers[id]}
    /* non si sa mai */
    else{return null}
  }
}
ovviamente è solo un esempio (piaciuto il disclaimer? ^__^)

 ovviamente è solo un esempio (piaciuto il disclaimer? ^__^)
Tsk, ed il vecchio "questo programma non uccidera' mai il vostro gatto" dove
te lo sei dimenticato? ^___-