Feb 2008

Javascript Events:: Eigenschaften und Methoden von Ereignissen

 
 
event-1.gifevent-2.gif

Ereignisse beherbergt wichtige Informationen, die das Ereignis und seinen aktuellen Zustand beschreiben – z.B.

  • das HTML-Element, auf dem das Ereignis stattfand,
  • die auslösende Maustaste oder
  • welche Taste auf der Tastatur das Ereignis auslöste.

Im DOM Level 2 wird das Ereignis-Objekt automatisch an die aufgerufende Funktion weitergegeben, aber der Programmierer muss das Event der Funktion trotzdem ausdrücklich übergeben. Um Konflikte mit dem window.event von IE zu vermeiden, sollte man als Namen für den Parameter nicht "event" wählen.

event als Parameter des Event Handlers
element.onclick = someFunction;  oder 

function someFunction(evt) {
    // Verarbeitung des Ereignisses
}

Dieser Parameter ist die einzige Verbindung zum event-Objekt. Wenn wir das Ereignis später in einer anderen Funktion brauchen, muss die Funktion als Relay dienen und das Ereignis oder die Werte seiner Eigenschaften weitergeben.

Anpassung der Referenzen auf das Event-Objekt

Um den unterschiedlichen Umgang mit dem Event-Objekt zwischen den Browsern anzupassen, benutzen wir eine Objekt-Erkennung (Object Detection):

function myFunc(evt) {
    evt = (evt) ? evt : ((window.event) ? window.event : "");
    // Verarbeitung des Ereignisses
}

Klicken Sie in das Feld oder aktivieren Sie das Feld durch die Tabulator-Taste

Die Referenz auf das HTML-Element, an welches das Ereignis gerichtet ist, gehört zu den wichtigsten Informationen. W3C-kompatible Browser sprechen das HTML-Element mit target an, während MSIE srcElement benutzt. Der Unterschied lässt sich durch eine Objekt-Erkennung nivilieren:

var elem = (evt.target) ? evt.target : evt.srcElement;

Attribute

Definiert von Unterstützt von Attribut Beschreibung
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
altKey (boolean) Gibt an, ob die Alt-Taste beim Feuern des Ereignisses gedrückt war.
DOM 2 Basis
ObjectEvent
bubbles (boolean) Gibt an, ob ein Ereignis aufsteigen kann.
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
button (unsiged short) Syntax: event.button
Maustaste: Eine Zahl für die gedrückte Maustaste
W3C linke Maustaste = 1, mittlere Maustaste = 2, rechte Maustaste = 3
MSIE: keine Maustaste = 0, linke Maustaste = 1, rechte Maustaste = 2, rechte und linke Maustaste = 3, mittlere Maustaste = 4, linke und mittlere Maustaste = 5, mittlere und rechte Maustaste = 6, linke, mittlere und rechte Maustaste = 7
Eine Maus mit nur einer Taste wird immer nur 1 zurückgeben, eine Maus mit zwei Tasten kann 1 oder 3 zurückgeben.
DOM 2 Basis
ObjectEvent
cancelable (boolean) Gibt an, ob die vorgegebene Aktion verhindert werden kann.
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
clientX/clientY Mauskoordinaten relativ zum Fenster, in Safari 1.2 relativ zum Document
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
ctrlKey (boolean) Gibt an, ob die Ctrl-Taste beim feuern des Ereignisses gedrückt war.
DOM 2 Basis
ObjectEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
currentTarget Gibt die Targets (die Elemente, für die der Event Handler registriert wurde) zurück, deren Event Listener augenblicklich durchgeführt werden.
DOM 2 Basis
ObjectEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
eventPhase (unsigned short) Gibt die Phase zurück, in der sich ein Ereignis augenblicklich befindet: CAPTURING_PHASE (1), AT_TARGET (2) oder BUBBLING_PHASE (3)
MSIE MSIE 6 fromElement/toElement gibt das Element, von dem aus die Maus einen mouseover-Bereich betritt bzw. das Element, das die Maus nach einem mouseover betritt. Entspricht dem relatedTarget des W3C
MSIE MSIE 6
Mozilla
Safari 1.3
Opera 8
keyCode Syntax: event.keyCode
Letzte gedrückte Taste. Das Zeichen mit String.fromCharCode(keyCode) lesen
Netscape 6 MSIE 6
Mozilla
Safari 1.3
Opera 8
layerX/layerY Syntax: event.layerX event.layerY
Anzahl der Pixel in der horizontalen/vertikalen Position des Mauszeiger relativ zum Ereignis-auslösenden, absolut positionierten Element, oder – wenn die Eigenschaft von einem resize-Ereignis zurückgegeben wurde – die Breite/Höhe des Objekts. Diese Eigenschaften sind ein Synonym für die Objekt-Eigenschaften x und y
Micht MSIE, Nicht Opera
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
metaKey (boolean) Gibt an, ob die 'Meta'-Taste beim Feuern des Ereignisses gedrückt war. Nur Mozilla auf dem Mac und Safari unterstützen diese Eigenschaft für die „Apfel“-Taste des Macs.
MSIE MSIE offsetX / offsetY Syntax: event.offsetX event.offsetY
Gibt die Mauskoordinaten relativ zum Element, für das das Ereignis registriert wurde, zurück
Entspricht dem layerX und layerY in Netscape
Netscape 6 MSIE 6
Mozilla
Safari 1.3
Opera 8
pageX / pageY Syntax: event.pageX / event.pageY
Horizontale/vertikale Cursorposition beim Eintreten des Ereignisses in Bezug auf die Seite
Nicht MSIE
DOM 2
MouseEvent
relatedTarget (readonly) Gibt bei einem mouseover-Ereignis an, welches Element verlassen wurde. Bei einem mouseout gibt die Eigenschaft an, auf welchen Knoten die Maus bewegt wurde.
MSIE: fromElement, toElement
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
shiftKey (boolean) Gibt an, ob die Shift-Taste beim feuern des Ereignisses gedrückt war.
DOM 2
MouseEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
screenX / screenY Syntax: event.screenX / event.screenY
x-/y-Koordinate des Mauszeigers beim Eintreten des Ereignisses relativ zum Koordinatensystem des Fensters.
MSIE MSIE 6
Mozilla
Safari 1.3
Opera 8
srcElement Syntax: event.srcElement[ = oObject ]
MSIE: Setzt/Liest das Ereignis-auslösende Objekt
DOM 2 Basis
ObjectEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
target (readonly) Syntax: event.target
Referenz auf das Objekt, an welches das Ereignis ursprünglich gesendet wurde
Nicht MSIE (außer IE 5 Mac)
DOM 2 Basis
ObjectEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
timeStamp Zeit in Millisekunden, zu der ein Ereignis erzeugt wurde. Kann auf einigen Plattformen nicht verfügbar sein. In diesem Fall wird 0 zurückgegeben.
DOM 2 Basis
ObjectEvent
MSIE 6
Mozilla
Safari 1.3
Opera 8
type (string, readonly) Syntax: event.type
Typ des Ereignis (click, keyPress, load, ...) als String
Netscape 6 MSIE 6
Mozilla
Safari 1.3
Opera 8
which Syntax: event.which
Maustaste: Eine Zahl für die gedrückte Maustaste
linke Maustaste = 1, mittlere Maustaste = 2, rechte Maustaste = 3
Safari: Nur die linke Maustaste wird erkannt.
Opera: linke Maustaste = 1, mittlere Maustaste = 3, rechte Maustaste = 2
Tastatur: Eine gedrückte Taste auf der Tastatur (Netscape: Ascii-Wert, MSIE: Unicode) beim Eintreten des Ereignis
MSIE MSIE 6
Mozilla
Safari 1.3
Opera 8
x/y Syntax: event.x event.y
MSIE/Opera: Koordinaten der Mausposition relativ zu einem relativ positionierten Eltern-Element.
Safari: clientX/clientY
Netscape: layerX und layerY
                        |                                        | 
                        |                                        |
                        |                                        |
                        | pageY-y                                | pageY
pageX-x                 |                                        |
------------------      +--------------------------------------------------+
                        |                                                  |
                        |                                        |         |
                        |                                        |         |
                        |                                        |         |
                        |                                        |         |
                        |                                      y |         |
                        |                                        |         |
                        |                                        |         |
                        |                                        |         |
pageX                   |                    x                   |         |
--------------------    |    ------------------------------------+         |
                        |                                                  |
                        +--------------------------------------------------+

Event Handling, ECMAScript Language Binding

   


Copyright © 2000 - 2010 Media Engineering Alle Rechte vorbehalten
Design + Programmierung Media Engineering U. Häßler 47506 Neukirchen-Vluyn • Impressum und Nutzungsbestimmungen