von Thomas Salvador.
Ein Formular mit Ausgabe von onmouseover und anderen Maus-Events:
<html><head><title>onmouseover-Test</title></head><body> <form name="onmouseoverform" action="#"> <input type="text" name="inputfeld" size="40" onmousedown="this.value='Maustaste gedrückt';" onmouseup ="this.value='Maustaste losgelassen';" onmousemove="this.value='Maus bewegt';" onmouseover="this.value='Auf Feld bewegt';" onmouseout ="this.value='Aus Feld bewegt';" ondblclick ="this.value='KlickKlick';" onclick ="this.value='Klick';" /> </form> </body></html>
onmouseover wird ausgeführt, wenn die Maus auf das Element bewegt wird.
Besonders häufig wurde dies genutzt, um den nach dem Event benannten onmouseover-Effekt zu realisieren, bei dem zum Beispiel Buttons darauf reagieren, dass man mit der Maus darauf zeigt.
Heute kann man diesen Effekt leichter und kompatibler mit CSS erreichen.
Im obigen Beispiel wird ein kleines Formular mit Nur-Lese-Feld zur Ausgabe definiert. Es ist mit den verschiedenen onmouse*-Events und den Klick-Events belegt und gibt jeweils eine entsprechende Reaktion aus.
Die meisten Events sind generell und an praktisch allen HTML-Tags nutzbar. Einige andere sind nur mit den sinnhaft passenden Tags möglich. Mitunter wertet jedoch ein Browser nicht alle Möglichkeiten aus.
Der Wert des Event-Attributes onmouseover ist ausschließlich JavaScript – entsprechend gelten die JavaScript-Syntax-Regeln. Ich empfehle nur kurze Scripte direkt zu platzieren. Erstellen Sie sonst eine Funktion und lassen diese dann durch onmouseover aufrufen.
Grundsätzlich wird der Event vor dem HTML-Tag ausgeführt. Der JavaScript-Code sollte generell einen Rückgabewert erzeugen, true oder false. Per Voreinstellung wird true angenommen. Der Rückgabewert beantwortet die Frage, ob der HTML-Tag noch ausgeführt werden soll. Dabei bedeutet false, dass der Tag nicht mehr ausgeführt werden soll (was der häufigste Fall ist).
In dieser Form ist es möglich, JavaScript einzuführen und zu nutzen, ohne nicht-JavaScript-fähige Browser auszuschließen.
Beispiel: HTML-Tag abbrechen:
<a href="kein-javascript.html" onclick="self.location.href='javascript.html';return false;">klick</a>
Mit aktivierter JavaScript-Unterstützung wird zu javascript.html verzweigt. Da die Rückgabe false ist, wird der HTML-Verweis nicht weiter beachtet.
Ohne aktivierte JavaScript-Unterstützung wird zu kein-javascript.html, da onclick vom Browser gar nicht ausgewertet wird.
Beispiel: HTML-Tag ausführen lassen:
<a href="naechste-seite.html" onclick="alert('weiter geht es...');">klick</a> <a href="naechste-seite.html" onclick="alert('weiter geht es...');return true;">klick</a>
Hier wird mit und ohne JavaScript-Unterstützung zu naechste-seite.html verzweigt. Ist JavaScript aktiviert, gibt es zusätzlich eine Meldung bevor verzweigt wird. Die Verzweigung selbst wird hier in jedem Fall über HTML realisiert.
Neben der schon gezeigten Optimierung mit JavaScript ist die Überprüfung von Formularen eine der wichtigsten Einsatzgebiete.
Beispiel:
<form name="formular" method="post" action="verarbeite.php" onsubmit="return erlaubt( );"> .. </form>
Was passiert: Beim Absende-Versuch (Klick auf den Submit-Button) wird eine JavaScript-Funktion (hier: erlaubt) aufgerufen. In dieser Funktion kann der Betreiber zum Beispiel prüfen, ob alle notwendigen Felder ausgefüllt wurden. Ist alles ok, könnte er true liefern, sonst false. Letzteres würde das Absenden abbrechen.
Der Vorteil ist, dass so die wichtigsten Prüfungen bereits gemacht werden können, ohne dass überhaupt etwas an den Server übermittelt wurde.
Natürlich muss das auch noch mal auf dem Server (hier: in verarbeite.php) geprüft werden. Für Besucher ohne JavaScript wird die Prüfung vor Absenden ja nicht ausgeführt und Daten sofort übermittelt.
Attribut | Beschreibung |
---|---|
onblur | Auszuführender Javascript-Code bei Fokusverlust |
onchange | Auszuführender Javascript-Code bei Wertänderung |
onclick | Auszuführender Javascript-Code bei Klick |
ondblclick | Auszuführender Javascript-Code bei Doppelklick |
onerror | Auszuführender Javascript-Code bei Auftreten eines Fehlers |
onfocus | Auszuführender Javascript-Code bei Fokuserhalt |
onkeydown | Auszuführender Javascript-Code bei Drücken einer Taste |
onkeypress | Auszuführender Javascript-Code bei gedrückt gehaltener Taste |
onkeyup | Auszuführender Javascript-Code bei Loslassen einer Taste |
onload | Auszuführender Javascript-Code, wenn alle Frames geladen wurden |
onload | Auszuführender Javascript-Code, wenn Dokument fertig geladen wurde |
onload | Auszuführender Javascript-Code, wenn Grafik/Applet fertig geladen wurde |
onmousedown | Auszuführender Javascript-Code bei Drücken einer Maustaste |
onmousemove | Auszuführender Javascript-Code, wenn die Maus bewegt wird |
onmouseout | Auszuführender Javascript-Code, wenn die Maus das Element verlässt |
onmouseover | Auszuführender Javascript-Code, wenn die Maus auf das Element bewegt wird |
onmouseup | Auszuführender Javascript-Code bei Loslassen einer Maustaste |
onreset | Auszuführender Javascript-Code bei Löschen eines Formulars |
onselect | Auszuführender Javascript-Code bei Textselektierung |
onsubmit | Auszuführender Javascript-Code bei Absenden eines Formulars |
onunload | Auszuführender Javascript-Code, wenn alle Frames entfernt wurden |
onunload | Auszuführender Javascript-Code, wenn Dokument entladen (geschlossen) wurde |