Alan Hathway: Anfänger Frage zu window.event.clientX

Versuche durch Anwendung von window.event.clientX festzustellen, ob der Cursor sich bewegt hat.

Habe es reduziert auf folgendes.

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
<title>test</title>
<SCRIPT LANGUAGE="Javascript">
var hilf; function CursPos() { alert(hilf); alert(window.event.clientX); if (hilf==window.event.clientX) alert ("Seit 5 Sekunden nicht geändert"); else hilf=window.event.clientX; setTimeout("CursPos()",5000); }
</SCRIPT> </head>
<body onload="CursPos()" bgcolor="#ffffff">
</body>
</html>

Wenn ich es aufrufe, kommt sofort ein
alert 'undefined' - das ist alert(hilf) - wunderbar
dann kommt
alert mit einer Zahl z.B. 93, je nachdem wo Cursor ist - auch wunderbar. D.h. window.event.ClientX funktioniert
Jetzt gehen 5 Sekunden (5 mal 1000) ins Land und dann kommt die function CursPos() wieder ran. Es kommt ein
alert mit der gleichen Zahl wie oben z.B. 93 - wunderbar
Aber dann erhalte ich ein Javascript Fehler 'Object erforderlich' beim zweiten alert Befehl. Wieso?

(Ohne alert Befehle, kommt die Meldung 'Object erforderlich' beim zweiten Durchgang beim 'if' Befehl)

(Die Meldung kommt immer beim zweiten Durchgang, auch wenn ich im ersten Durchgang window.event.clientX nicht anspreche.)

Ich benutze MS Internet Explorer 5.0 uund habe das gleiche Problem mit einem V4.0 MSIE (und brauche es nur für MSIE - das es mit Netscape so nicht geht ist mir klar)

Was mache ich hier falsch?

Danke im voraus

Alan Hathway
hathway@t-online.de
www.squash-in-oberbayern.de

PS bin das aller erste Mal hier - habe Archiv & Aktuelles durchsucht, aber falls ich was falsches mache - bitte sagen

  1. Hi Alan.

    Dein script scheint mir etwas wirr zu sein. Das Objekt window.event existiert nur solange ein
    Event unterwegs ist. Zudem definierst Du nirgends welches Event Du überhaupt überwachen willst.
    Da scheint mir mousemove geeignet.

    Mein Vorschlag: setze alle 100ms einen Timeout, der in 5 sec die Message aufruft und kille ihn
    onmousemove.
    Das alles geht in Netscape genauso einfach wie im IE.

    Hilfreiche Artikel zu Eventhandling:
    http://www.webreview.com/pub/97/07/25/coder/index.html
    http://www.webreview.com/pub/97/08/22/coder/index.html
    <../../tfba.htm#a5>
    <../../tfbe.htm#a8>

    lg Hobbes

    1. Danke Hobbes,

      'wirr' ist wahrlich die Untertreibung des Jahres.

      Habe von den 4 Texte, die Du erwähnt hast zwar keine verstanden, da ich den Unterschied zwischen einem Event, einem Objekt, einer Method nicht kapiere, aber das Stichwort 'mousemove' zusammen mit Altavista hat mich auf

      http://developer.irt.org/script/pointer.htm

      gebracht (gestern hatte ich nach window.event.clientX gesucht)

      Dort gibt es (fast) 100% das Beispiel, das ich brauche - ich möchte, wenn die Maus in der letzten n Sekunden nicht bewegt wurde, zu einer anderen Seite springen und das mache ich mit

      document.location.href="woanders.htm" oder?

      Hoffe jetzt es alleine zu stande zu bringen

      Herzlichen Dank für den Tipp

      Alan Hathway