Henryk Plötz: Mauszeigerposition auslesen in Mozilla/Netscape

Beitrag lesen

Moin,

Im IE funktioniert alles Problemlos.
Kann mir jemand die Browserspezifischen Befehle sagen?

Browserspezifische Befehle gibt es nicht mehr, Mozilla implementiert dafür DOM ziemlich gut (das kriegt der IE leider nicht auf die Reihe). Die entsprechende Beschreibung in Selfhtml liegt unter http://selfhtml.teamone.de/dhtml/modelle/dom.htm#event_handling ist aber bedauerlicherweise noch wenig umfangreich und in mindestens einem Punkt falsch (der dritte Parameter von addEventListener legt fest, ob der Listener in den Bubbling-Phase oder in der Capture-Phase aktiv sein soll), so dass du im Zweifelsfall mit der original-DOM-Spezifikation zu DOM Level 2 Events besser beraten bist: http://www.w3.org/TR/DOM-Level-2-Events/.

Die Kurzform:
a) Du prüfst ab, ob der Browser DOM kennt (mit if(document.getElementById)).
b) Falls ja, prüfst du ob der Browser dir die DOMImplementation wie in DOM Level 2 definiert zur Verfügung stellt (mit if(document.implementation)).
c) Falls ja, prüfst du ab, ob der Browser das Mouse Events-Modul von DOM Level 2 kennt (mit if(document.implementation.hasFeature("MouseEvents", "2.0"))).
d) Falls ja registrierst du einen EventListener für document der für mousemove-Events in der Capture-Phase aufgerufen wird (mit document.addEventListener("mousemove", meinefunktion, true); wobei meinefunktion genau einen Parameter nehmen muß, in den später das Event-Objekt geschrieben wird).
e) Auf allen User Agents die DOM Level 2 Events kennen wird jetzt (zumindest wenn der Benutzer das nicht unterdrückt ;) deine Funktion meinefunktion aufgerufen sobald die Maus im Dokument bewegt wird. Als erster Parameter wird ihr ein Event-Objekt übergeben, das unter anderem clientX, clientY, screenX und screenY als Eigenschaften hat, in denen die jeweiligen Pixelwerte für die aktuelle Mausposition stehen. Damit kannst du jetzt machen was du willst.

--
Henryk Plötz
Grüße aus Berlin