Jan 2008

Javascript Ereignisse

 
 

Ereignisse sind das Herz der interaktiven Programmierung … nicht nur auf Webseiten. Das Drücken einer Taste, ein Mausklick auf einen Button oder das Absenden eines Formulars machen selbst dem Betriebssystem Beine.

Ereignisse sind auch ein wesentliches Moment für die Benutzerfreundlichkeit einer Webseite. Sie teilen dem Besucher mit: »Diese Seite nimmt dich zur Kenntnis und du bewirkst etwas«. Schönstes Beispiel für die Ereignissteuerung auf Webseiten ist das mouseover bei einem Link, über das wir uns keinerlei Gedanken machen müssen: Auch ohne CSS und Javascript mutiert der Mauszeiger zum Händchen.


2009030101.gif 2009030102.gif


Das Wechseln eines Bildes beim mouseover oder die schnelle Prüfung von Eingaben in Formularen gehören zu den klassischen Aufgaben für Javascript.

<script type="text/javascript">
function imageOver() {
   if (document.getElementById('i1')) {
      document.getElementById('i1').onmouseover = function() {
         this.setAttribute('src', 'bild02.gif');
      }
      document.getElementById('i1').onmouseout = function() {
         this.setAttribute('src', 'bild01.gif');
      }
   }
}

addEvent( window, "load", imageOver );
</script>
… 
<img id="i1" src="bild01.gif" width="160" height="117" alt="bild01.gif" />

Javascript Event Handler

Event Handler sind Javascript-Anweisungen oder -Funktionen, die beim Eintreten eines Ereignisses handeln – ihre Aktionen durchführen –, z.B. beim Eintreten eines mouseover das src-Attribut des img-Tags austauschen.

Dazu müssen das Ereignis und das Objekt, auf dem das Ereignis stattfindet, einem Registrar gemeldet werden.

              +----- Element, auf dem Ereignisse abgefangen werden sollen
              |
              |                     +------ abzufangendes Ereignis
              |                     |
              |                     |           + ----- Event Handler
              |                     |           |
              v                     v           v
document.getElementById('i1').onmouseover = function() {

}

Das hier kurz angerissene Vorgehen zum Anmelden von Ereignisse ist nicht die einzige Methode. Das DOM hat uns neuere Methoden der Ereignissteuerung mit Javascript beschert, die aber nicht ohne Weiteres von allen Browsern unterstützt werden.

Standards für das Event Handling

Die Ereignisse für Webseiten werden in der Document Object Model (DOM) Events Specification definiert. Aber das DOM versucht gar nicht erst, alle möglichen Ereignisse zu definieren. DOM Events stellt nur eine gediegene Basis zur Verfügung:

  • Ereignisse der Benutzeroberfläche, die der Benutzer durch ein externes Gerät wie der Maus ausgelöst. Beispiele sind onmouseover und onclick.
  • Ereignisse des Systems, die das Dokument ändern (wie window.onload und onresize für das Ändern der Fenstergröße)

DOM Level 2 Events definiert keinerlei Tastaturereignisse wie onkeydown und onkeypress – das war noch zu kompliziert für das DOM – und verschiebt die Definition von Tastaturereignissen auf eine spätere Version. Trotzdem sind diese Ereignisse natürlich präsent und lassen sich mit Javascript abfangen und behandeln.

HTML-Ereignisse

onload
wenn der Browser ein Fenster oder die Frames in einem Fenster geladen hat.
onunload
wenn der Browser ein Dokument aus dem Fenster oder Frame entfernt.
BODY, FRAMESET
onabort
wenn das Laden einer Seite abgebrochen wurde, bevor ein Bild vollständig geladen wurde.
onerror
wenn ein fehlerhaftes Bild nicht geladen werden kann oder ein Fehler bei der Scriptausführung auftritt.
OBJECT, BODY und FRAMESET
onselect
wenn der Benutzer einen Text in einem Eingabefeld markiert.
onchange
wenn ein Eingabefeld den Fokus verliert und sein Wert in der Zeit, in der es im Fokus war, geändert wurde.
onsubmit
wenn ein Formular abgeschickt wird.
onreset
wenn ein Formular zurückgesetzt wird.
FORM
onfocus
wenn ein Element in den Fokus kommt (aktiviert wird), weil der Benutzer auf das Element klickt oder mit der Tastatur zum Element navigiert.
A, AREA, BUTTON, INPUT, LABEL, SELECT, TEXTAREA
onblur
wenn ein Fenster oder ein Element den Fokus verliert.
A, AREA, BUTTON, LABEL, SELECT, TEXTAREA
onresize
wenn das Fenster des Dokuments verkleinert oder vergrößert wird.
onscroll
wenn das Dokument gescrollt wird.

Maus-Ereignisse

onclick
wenn eine Maustaste über einem Element gedrückt wird. Ein click tritt auf, wenn die Maustaste an derselben Stelle heruntergedrückt und losgelassen wird.
onmousedown
wenn der Benutzer eine Taste der Maus über einem Element herunterdrückt.
onmouseup
wenn eine Maustaste über einem Element losgelassen wird.
onmouseover
wenn eine Maustaste in ein Element bewegt wird.
onmousemove
wenn die Maus über einem Element bewegt wird. mousemove feuert bei jedem Pixel, um den die Maus bewegt wird.
onmouseout
wenn die Maus einem Element herausbewegt wird.
ondblclick
wenn ein die Maustaste an derselben Stelle doppelt geklickt wird.

Ereignisse der Tastatur

onkeydown
wenn der Benutzer eine Taste auf der Tastatur herunterdrückt.
onkeyup
wenn der Benutzer eine Taste auf der Tastatur losgelassen hat.
onkeypress
wenn der Benutzer eine Taste auf der Tastatur herunterdrückt oder festhält.

Mutations-Ereignisse

DOMSubtreeModified
DOMNodeInserted
DOMNodeRemoved
DOMNodeRemovedFromDocument
DOMNodeInsertedIntoDocument
DOMAttrModified
DOMCharacterDataModified
   


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