SELFHTML/Quickbar  JavaScript  Sprachelemente


Event-Handler

Diese Seite ist ein Dokument mit Informationstext

 Allgemeines zu Event-Handlern
 onAbort (bei Abbruch)
 onBlur (beim Verlassen)
 onChange (bei erfolgter Änderung)
 onClick (beim Anklicken)
 onDblClick (bei doppeltem Anklicken)
 onError (im Fehlerfall)
 onFocus (beim Aktivieren)
 onKeydown (bei gedrückter Taste)
 onKeypress (bei erfolgtem Tastendruck)
 onKeyup (bei losgelassener Taste)
 onLoad (beim Laden einer Datei)
 onMousedown (bei gedrückter Maustaste)
 onMousemove (bei weiterbewegter Maus)
 onMouseout (beim Verlassen des Elements mit der Maus)
 onMouseover (beim Überfahren des Elements mit der Maus)
 onMouseUp (bei losgelassener Maustaste)
 onReset (beim Zurücksetzen des Formulars)
 onSelect (beim Selektieren von Text)
 onSubmit (beim Absenden des Formulars)
 onUnload (beim Verlassen der Datei)
 javascript: (bei Verweisen)

 

Allgemeines zu Event-Handlern

Event-Handler (Ereignis-Behandler) sind ein wichtiges Bindeglied zwischen HTML und JavaScript. Event-Handler werden in Form von Atrributen in HTML-Tags notiert. Da es sich um Bestandteile handelt, die innerhalb von HTML vorkommen, hat das W3-Konsortium die Event-Handler mittlerweile auch in den HTML-Sprachstandard mit aufgenommen (siehe auch  Universalattribute:  Event-Handler). Dort wird auch festgelegt, in welchen HTML-Tags welcher Event-Handler vorkommen darf. Das Problem dabei ist jedoch, daß die Praxis derzeit noch stark davon abweicht - zumindest bei Netscape. Der MS Internet Explorer 4.x dagegen interpretiert Event-Handler weitgehend so universell wie vom W3-Konsortium vorgesehen. Bei den Beschreibungen der Event-Handler auf dieser Seite wird jeweils versucht, auf die Problematik einzugehen. Letztendlich hilft aber nur: selber im Einzelfall mit mehreren verschiedenen Browsern testen und ausprobieren.

Event-Handler erkennen Sie daran, daß solche HTML-Attribute immer mit on beginnen, zum Beispiel onClick=. Hinter dem Istgleichzeichen notieren Sie - in Anführungszeichen, eine JavaScript-Anweisung. Wenn Sie mehrere Anweisungen ausführen wollen, dann definieren Sie sich dazu am besten in einem JavaScript-Bereich eine  Funktion und rufen hinter dem Istgleichzeichen diese Funktion auf, also z.B. onClick="Umrechnen()".

Jeder Event-Handler steht für ein bestimmtes Anwenderereignis, onClick= etwa für das Ereignis "Anwender hat mit der Maus geklickt". Der Anzeigebereich des HTML-Elements, in dem der Event-Handler notiert ist, ist das auslösende Element dabei. Wenn der Event-Handler onClick= beispielsweise in einem Formularbutton notiert wird, wird der damit verknüpfte JavaScript-Code nur dann ausgeführt, wenn der Mausklick im Anzeigebereich dieses Elements erfolgt. Das mag Ihnen jetzt selbstverständlich vorkommen. Ist es auch, solange es beispielsweise um Formularbuttons geht. Aber nach dem erweiterten Modell von HTML 4.0 kann etwa auch ein HTML-Bereich, der mit <div>...</div> definiert wird, einen Event-Handler wie onClick= enthalten.

Es wurden nur solche Event-Handler aufgenommen, die auch tatsächlich in HTML-Tags vorkommen können und im HTML-4.0-Standard erwähnt sind (mit Ausnahme von onAbort=). Das sind weniger, als Netscape und der MS Internet Explorer kennen. Bei Netscape kommt verwirrenderweise hinzu, daß einige Event-Handler zwar so bezeichnet werden, aber eigentlich gar nicht innerhalb von HTML-Tags vorkommen können. Es ist zu hoffen, daß es hierbei in Zukunft mehr Übereinstimmungen zwischen Sprachstandards und Browser-Implementierungen geben wird.

 

JavaScript 1.0Netscape2.0MS IE3.0 onAbort (bei Abbruch)

Ist für den Fall gedacht, daß ein Anwender im Browser den Stop-Button drückt, obwohl noch nicht alle Grafiken geladen wurden.

Nach JavaScript (Netscape) erlaubt in folgendem HTML-Tag:
<img>

Beispiel:

<html><head><title>Test</title>
</head><body>
<img src="grafik.jpg" width=400 height=600 alt="Grafik" 
onAbort="alert('Schade, dass Sie das Bild nicht sehen wollen')">
</body></html>

Erläuterung:

Im Beispiel wird eine Grafik in HTML referenziert. Für den Fall, daß der Anwender den Stop-Button im Browser drückt, bevor die Grafik ganz geladen ist, wird mit alert() eine Meldung ausgegeben.

 

JavaScript 1.0Netscape2.0MS IE3.0 onBlur (beim Verlassen)

Für den Fall, daß ein Element zuvor aktiviert war und der Anwender es jetzt verläßt.

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<body> <frameset> <input> <layer> <select> <textarea>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <area> <button> <input> <label> <select> <textarea>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form name="Test">
Name: <input type=text name="Eingabe" onBlur="CheckInhalt(this.value)">
</form>
<script language="JavaScript">
document.Test.Eingabe.focus();
function CheckInhalt(Feld)
{
 if(Feld == "")
 {
  alert("Namensfeld muss einen Inhalt haben!");
  document.Test.Eingabe.focus();
  return false;
 }
}
</script>
</body></html>

Erläuterung:

Im Beispiel wird ein Formular definiert, das ein Eingabefeld enthält. Unterhalb des Formulars ist ein JavaScript-Bereich notiert. Der Bereich wird deshalb unterhalb des Formulars definiert, weil zu Beginn des Bereichs gleich eine Anweisung ausgeführt wird, die die Existenz des Formulars bereits voraussetzt. Dies Anweisung (document.Test.Eingabe.focus();) setzt den Cursor in das Eingabefeld Dort soll der Anwender seinen Namen eingeben. Klickt irgendwo anders hin, wird der EventHandler onBlur aktiv, der im HTML-Tag des Eingabefeldes notiert ist. Dabei wird die Funktion CheckInhalt() aufgerufen, die ebenfalls in dem JavaScript-Bereich notiert ist. Diese Funktion fragt ab, ob die ihr übergebene Zeichenkette, der Inhalt des Namensfeldes, leer ist. Wenn ja, wird ein Meldungsfenster ausgegeben, und der Cursor wird wieder in das Feld positioniert.

 

JavaScript 1.0Netscape2.0MS IE3.0 onChange (bei erfolgter Änderung)

Für den Fall, daß ein Element einen geänderten Wert erhalten hat.

Nach HTML 4.0 und JavaScript 1.2 (Netscape) erlaubt in folgenden HTML-Tags:
<input> <select> <textarea>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form name="Test">
<textarea rows=10 cols=40 onChange="alert(this.value)">Ihr Kommentar!</textarea>
</body></html>

Erläuterung:

Im Beispiel wird ein Formular mit einem mehrzeiligen Eingabefeld definiert. Wenn der Anwender irgendetwas in das Feld eingibt und anschließend woanders hin klickt, wird der Event-Handler onChange aktiv, der im HTML-Tag des mehrzeiligen Eingabefeldes notiert ist. Im Beispiel wird einfach der aktuelle geänderte Inhalt des Feldes in einem Meldungsfenster ausgegeben.

 

JavaScript 1.0Netscape2.0MS IE3.0 onClick (beim Anklicken)

Für den Fall, daß der Anwender ein Element anklickt.

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<a> <area> <input> <textarea>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form>
<input size=30 name="Ausgabe" readonly><br>
 <input type=button value="Letzter Update"
 onClick="this.form.Ausgabe.value=document.lastModified">
</form>
</body></html>

Erläuterung:

Im Beispiel wird ein Formular mit einem Eingabefeld (das jedoch auf "readonly", also nur Lesen gesetzt wird) und einem Button definiert. Der Button hat die Aufschrift "Letzter Update". Beim Anklicken des Buttons wird der Event-Handler onClick aktiv, der im HTML-Tag des Buttons definiert ist. Im Beispiel wird daraufhin in das Eingabefeld der Zeitpunkt der letzten Änderung am Dokument geschrieben.

 

JavaScript 1.2Netscape4.0MS IE4.0 onDblClick (bei doppeltem Anklicken)

Für den Fall, daß der Anwender ein Element anklickt.

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<a> <area> <input> <textarea>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form name="Rechnen">
Wert: <input size=10 name="Wert">
<input type=button "value=Doppelklick = hoch 2"
onDblClick="document.Rechnen.Wert.value=document.Rechnen.Wert.value*document.Rechnen.Wert.value">
</form>
</body></html>

Erläuterung:

Im Beispiel wird ein Formular mit einem Eingabefeld und einem Button definiert. Im Button ist der Event-Handler onDblClick= notiert. Der Button reagiert daher nur auf Doppelklick. Wenn der Anwender doppelt auf den Button klickt, wird von dem Wert, den er in dem Eingabefeld eingegeben hat, das Quadrat errechnet, und das Ergebnis wird wiederum in das Eingabefeld geschrieben.

Beachten Sie:

Bei Netscape-Browsern unter Macintosh ist dieser Event-Handler nicht verfügbar!

 

JavaScript 1.1Netscape3.0MS IE4.0 onError (im Fehlerfall)

Eignet sich zum Abfangen von Fehlermeldungen und zum Ersetzen solcher Meldungen durch eigene. Beachten Sie jedoch, daß dadurch nicht die Fehler selbst beseitigt werden! onError ist vor allem zum Handling von Fehlern beim Laden von Grafiken gedacht.

Nach JavaScript erlaubt in folgendem HTML-Tag:
<img>

Beispiel:

<html><head><title>Test</title>
</head><body>
<img src="gibtsnicht.gif" onError="alert('Grafik kann nicht angezeigt werden')">
</body></html>

Erläuterung:

Im Beispiel wird in einer Grafikreferenz der Event-Handler onError= notiert. Er wird dann aktiv, wenn die Grafikdatei nicht existiert oder nicht angezeigt werden kann. Im Beispiel wird dann ein entsprechendes Meldungsfenster ausgegeben.

 

JavaScript 1.0Netscape2.0MS IE3.0 onFocus (beim Aktivieren)

Tritt ein, wenn der Anwender ein Element aktiviert.

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<body> <frame> <input> <layer> <select> <textarea>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <area> <button> <input> <label> <select> <textarea>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form>
<input size=30 onFocus="this.value='Hier Ihren Namen eingeben'"><br>
<input size=30 onFocus="this.value='Hier Ihren Wohnort eingeben'"><br>
<input size=30 onFocus="this.value='Hier Ihr Alter eingeben'"><br>
</form>
</body></html>

Erläuterung:

In dem Beispiel wird ein Formular definiert, das drei Eingabefelder enthält. Da die Felder unbeschriftet sind, hat der Anwender keine Ahnung, was der in die einzelnen Felder eingeben kann. Bewegt er den Cursor aus Neugier doch in eines der Eingabefelder, wird der Event-Handler onFocus= des jeweiligen Feldes aktiv. Dabei wird in das jeweilige Feld eine Aufforderung geschrieben, was in dem Feld einzugeben ist.

 

JavaScript 1.2MS IE4.0 onKeydown (bei gedrückter Taste)

Tritt ein, wenn der Anwender, während er ein Element aktiviert hat, eine Taste drückt.

Nach JavaScript (Netscape) bislang nicht in HTML-Tags möglich, sondern nur im Zusammenhang mit dem  event-Objekt

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
<script language="JavaScript">
function Aktualisieren()
{
  document.Test.Kontrolle.value = document.Test.Eingabe.value.length + 1 + " Zeichen eingegeben";
  return true;
} 
</script>
</head><body>
<form name="Test">
Kurzbeschreibung Ihrer Homepage (max 50 Zeichen):<br>
<textarea rows=2 cols=30 name="Eingabe" onKeydown="Aktualisieren(this.value)">
</textarea><br>
<input type=text readonly size=30 name="Kontrolle"><br>
<input type=reset>
</form>
</body></html>

Erläuterung:

Das Beispiel funktioniert nicht mit Netscape, nur mit dem MS Internet Explorer 4.x, der Event-Handler weitgehend nach HTML 4.0 interpretiert. Im Beispiel wird ein Formular definiert, in dem der Anwender eine Kurzbeschreibung seiner Homepage in einem mehrzeiligen Eingabefeld abliefern kann. Der Text soll maximal 50 Zeichen lang sein. Damit der Anwender nicht mitzählen muß, gibt es ein Eingabefeld, in dem nach jedem Tastendruck ausgegeben wird, wie viele Zeichen bereits eingegeben wurden. Dazu ist in dem mehrzeiligen Eingabefeld der Event-Handler onKeydown= notiert. Er bewirkt, daß, solange der Anwender in dem Formularfeld etwas eingibt, bei jedem Tastendruck die Funktion Aktualisieren() aufgerufen wird, die im Dateikopf in einem Scriptbereich definiert ist. Diese Funktion errechnet aus document.Test.Eingabe.value.length + 1, wie viele Zeichen bereits eingegeben wurden, und schreibt eine entsprechende Ausgabe in das dafür vorgesehene "Eingabe"-Feld.

 

JavaScript 1.2MS IE4.0 onKeypress (bei erfolgtem Tastendruck)

Nach JavaScript (Netscape) bislang nicht in HTML-Tags möglich, sondern nur im Zusammenhang mit dem  event-Objekt

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form name="Test">
<input type=text size=30 name="Eingabe"
  onKeypress="alert(window.event.keyCode)">
</form>
</body></html>

Erläuterung:

Das Beispiel funktioniert nicht mit Netscape, nur mit dem MS Internet Explorer 4.x, der Event-Handler weitgehend nach HTML 4.0 interpretiert. Im Beispiel ist ein Formular mit einem Eingabefeld definiert. Wenn der Anwender in dem Eingabefeld etwas eingibt, wird bei jedem Tastendruck in einem Meldungsfenster der dezimale Tastaturwert des eingegebenen Zeichens ausgegeben. Dazu ist in dem Eingabefeld der Event-Handler onKeypress= notiert. Er tritt in Aktion, wenn eine Taste gedrückt und wieder losgelassen wurde. Mit window.event.keyCode läßt sich nach Syntax des MS Internet Explorers der Tastaturwert des eingegebenen Zeichens ermitteln.

 

JavaScript 1.2MS IE4.0 onKeyup (bei losgelassener Taste)

Nach JavaScript (Netscape) bislang nicht in HTML-Tags möglich, sondern nur im Zusammenhang mit dem  event-Objekt

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form name="Test">
<input type=text size=30 name="Eingabe"
  onKeyup="this.form.Ausgabe.value=this.value"><br><br>
<input type=text readonly size=30 name="Ausgabe"><br>
<input type=reset>
</form>
</body></html>

Erläuterung:

Das Beispiel funktioniert nicht mit Netscape, nur mit dem MS Internet Explorer 4.x, der Event-Handler weitgehend nach HTML 4.0 interpretiert. Im Beispiel wird ein Formular definiert, das zwei Eingabefelder mit den Namen Eingabe und Ausgabe enthält. Wenn der Anwender in dem oberen Feld, also dem, das für die Eingabe gedacht ist, etwas eingibt, wird der Wert automatisch Zeichen für Zeichen in das untere, also das Ausgabefeld übernommen. Dazu ist im Eingabefeld der Event-Handler onKeyup notiert. Dieser Event-Handler tritt in Aktion, wenn der Anwender in dem Feld eine Taste gedrückt und wieder losgelassen hat, was ja bei jedem eingegebenen Zeichen der Fall ist. Mit this.form.Ausgabe.value=this.value wird dem Ausgabefeld der aktuelle Wert des Eingabefeldes zugewiesen.

 

JavaScript 1.0Netscape2.0MS IE3.0 onLoad (beim Laden einer Datei)

Tritt ein, wenn eine HTML-Datei geladen wird.

Nach JavaScript (Netscape) und HTML 4.0 erlaubt erlaubt in folgenden HTML-Tags:
<frameset> <body>

Beispiel:

<html><head><title>Test</title>
<script language="JavaScript">
<!--
function NaviFenster()
{
 Navigation = window.open("navigat.htm","Navigation","height=100,width=300");
 Navigation.focus();
}
// -->
</script>
</head>
<body onLoad="NaviFenster()">
</body></html>

Erläuterung:

Im Beispiel wird beim Einlesen der HTML-Datei ein zweites Fenster geöffnet, das zum Beispiel als "Fernbedienung" des Hauptfensters dienen könnte. Dazu ist im einleitenden <body>-Tag der Event-Handler onLoad= notiert. Er ruft die Funktion NaviFenster() auf, die in einem JavaScript-Bereich im Dateikopf definiert ist. Innerhalb dieser Funktion steht der Befehl zum Öffnen des Zweitfensters. Das Fenster erhält auch gleich den Fokus (wird zum aktiven Fenster), sodaß es im Vordergrund des Hauptfensters zu sehen ist.

 

JavaScript 1.2Netscape4.0MS IE4.0 onMousedown (bei gedrückter Maustaste)

Tritt ein, wenn der Anwender die Maustaste gedrückt hält.

Nach JavaScript (Netscape) bislang nicht in HTML-Tags möglich, sondern nur im Zusammenhang mit dem  event-Objekt. Das Beispiel weiter unten funktioniert mit Netscape 4.x allerdings trotzdem.

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<a href="home.htm"
onMousedown="window.status='Verweis zur Homepage';return true;">Verweis</a>
</body></html>

Erläuterung:

Das Beispiel enthält einen Verweis. Bei vollständig erfolgtem Anklicken des Verweises wird ganz normal das Verweisziel, im Beispiel also home.htm, aufgerufen. Vorher jedoch, sobald der Anwender die Maustaste gedrückt und bevor er sie wieder losgelassen hat, tritt der Event-Handler onMousedown= in Aktion, der im Verweis-Tag notiert ist. Im Beispiel wird dabei in der Statuszeile des Browsers ausgegeben: Verweis zur Homepage.

 

JavaScript 1.2MS IE4.0 onMousemove (bei weiterbewegter Maus)

Tritt ein, wenn der Anwender die Maus bewegt, unabhängig davon, ob die Maustaste gedrückt ist oder nicht.

Nach JavaScript (Netscape) bislang nicht in HTML-Tags möglich, sondern nur im Zusammenhang mit dem  event-Objekt.

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

<html><head><title>Test</title>
<script language="JavaScript">
function Mauskontrolle()
{
 Pos = window.event.x + "/" + window.event.y;
 window.status = Pos;
 return true;
}
</script>
</head><body>
<p onMousemove="Mauskontrolle()">Hier ein kleiner Text</p>
</body></html>

Erläuterung:

Das Beispiel zeigt, wie Event-Handler auch in HTML-Tags funktionieren, bei denen das bislang nicht möglich war. Das Beispiel funktioniert mit dem MS Internet Explorer 4.x, der die Event-Handler nach HTML 4.0 weitgehend interpretiert. In dem Beispiel wird ein Textabsatz definiert. Innerhalb des Textabsatzes ist der Event-Handler onMousemove= notiert. Der Event-Handler tritt in Aktion, solange der Anwender die Maus im Anzeigebereich des Textabsatzes bewegt. Dann wird so oft wie möglich die Funktion Mauskontrolle() aufgerufen, die in einem Scriptbereich im Dateikopf notiert ist. Diese Funktion bewirkt, daß in der Statuszeile des Browsers jeweils die Koordinaten der Mausposition angezeigt werden.

 

JavaScript 1.1Netscape3.0MS IE4.0 onMouseout (beim Verlassen des Elements mit der Maus)

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<a> <area>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<a href="news.htm"
onMouseout="alert('Die News sollten Sie ruhig mal besuchen')">News</a>
</body></html>

Erläuterung:

Im Beispiel ist ein Verweis definiert. Wenn der Anwender mit der Maus über den Verweis fährt, ihn dann aber nicht anklickt, sondern die Maus doch wieder von dem Verweis entfernt, tritt der Event-Handler onMousout= in Aktion. Im Beispiel wird dann ein Meldungsfenster ausgegeben, daß den Anwender darauf hinweist, daß er die News-Seite ruhig mal aufrufen soll.

 

JavaScript 1.0Netscape2.0MS IE3.0 onMouseover (beim Überfahren des Elements mit der Maus)

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<a> <area>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<h1 id="Test"
 onMouseover="document.all.Test.innerText='Sehen Sie?'"
 onMouseout="document.all.Test.innerText='Ich bin dynamisch'">Ich bin dynamisch</h1>
</body></html>

Erläuterung:

Das Beispiel zeigt, wie Event-Handler auch in HTML-Tags funktionieren, bei denen das bislang nicht möglich war. Das Beispiel funktioniert mit dem MS Internet Explorer 4.x, der die Event-Handler nach HTML 4.0 weitgehend interpretiert. In dem Beispiel wird eine Überschrift erster Ordnung definiert. Innerhalb der Überschrift sind die Event-Handler onMouseover= und onMouseout= notiert. Der Event-Handler onMouseover= tritt in Aktion, wenn der Anwender die Maus in den Anzeigebereich der Überschrift bewegt, und onMouseout= wird aktiv, wenn er die Maus wieder aus dem Anzeigebereich herausbewegt. Mit Hilfe des  all-Objekts und der Eigenschaft innerText wird bei jedem Aktivwerden eines der beiden Event-Handler der Text der Überschrift dynamisch ausgetauscht. Bei onMouseover= wird ein anderer Text angezeigt, bei onMouseout= wieder der ursprüngliche Text.

 

JavaScript 1.0Netscape4.0MS IE4.0 onMouseup (bei losgelassener Maustaste)

Nach JavaScript (Netscape) bislang nicht in HTML-Tags möglich, sondern nur im Zusammenhang mit dem  event-Objekt. Das Beispiel weiter unten funktioniert mit Netscape 4.x allerdings trotzdem.

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<a href="spiel.htm" onMouseup="alert('Spiel wird gestartet');window.location.href='selfhtml.htm';">Verweis</a>
</body></html>

Erläuterung:

Im Beispiel ist ein Verweis notiert. Wenn der Anwender den Verweis anklickt und die Maustaste losläßt, also unmittelbar vor dem Laden der Seite, auf die verwiesen wird, geht ein Meldungsfenster auf, das den Anwender in aller Dramatik noch mal darauf hinweist, daß jetzt das Spiel gestartet wird. Dazu ist im Verweis-Tag der Event-Handler onMouseup= notiert. Wenn der in Aktion tritt, wird zunächst das Meldungsfenster angezeigt. Anschließend wird die Datei spiel.htm geladen.

 

JavaScript 1.1Netscape3.0MS IE4.0 onReset (beim Zurücksetzen des Formulars)

Tritt ein, wenn der Anwender Eingaben in einem Formular verwerfen will.

Nach JavaScript (Netscape) erlaubt erlaubt in folgendem HTML-Tag:
<form>

Beispiel:

<html><head><title>Test</title>
<script language="JavaScript">
function ResetCheck()
{
 chk = window.confirm("Wollen Sie alle Eingaben loeschen?");
 return chk;
}
</script>
</head><body>
<form name="Test" onReset="return ResetCheck()">
Name: <input size=30><br>
Idee: <input size=30><br>
<input type=reset><input type=submit>
</form>
</body></html>

Erläuterung:

Das Beispiel enthält ein Formular, das unter anderem einen Abbrechen-Button (Reset-Button) enthält. Beim Anklicken dieses Buttons werden normalerweise alle Eingaben im Formular gelöscht. Im Beispiel ist jedoch im einleitenden <form>-Tag der Event-Handler onReset= notiert. Dieser tritt in Aktion, wenn der Reset-Button angeklickt wird. Im Beispiel wird dann die Funktion ResetCheck() aufgerufen, die in einem Scriptbereich im Dateikopf steht. Diese Funktion fragt den Anwender in einem Bestätigungsfenster (window.confirm()), ob er wirklich alle Eingaben in dem Formular löschen will. Bestätigt er den Löschwunsch, gibt das Bestätigungsfenster den Wert true zurück. Verneint er den Löschwunsch, wird false zurückgegeben. Der Rückgabewert wird in der Variablen chk gespeichert und diese wird wiederum von der Funktion Funktion ResetCheck() an den aufrufenden Event-Handler zurückgegeben. Der Effekt ist, daß die Formulareingaben nur gelöscht werden, wenn true zurückgegeben wird.

 

JavaScript 1.0Netscape2.0MS IE3.0 onSelect (beim Selektieren von Text)

Tritt ein, wenn der Anwender Text selektiert.

Nach JavaScript (Netscape) erlaubt erlaubt in folgendem HTML-Tags:
<input> <textarea>

Nach HTML 4.0 erlaubt in folgenden HTML-Tags:
<a> <abbr> <acronym> <address> <area> <b> <big> <blockquote> <body> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <form> <h1> <h2> <h3> <h4> <h5> <h6> <hr> <i> <img> <input> <ins> <kbd> <label> <legend> <li> <link> <map> <menu> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <pre> <q> <s> <samp> <select> <small> <span> <strike> <strong> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <tr> <tt> <u> <ul> <var>

Beispiel:

<html><head><title>Test</title>
</head><body>
<form name="Test" onReset="return ResetCheck()">
<input size=30 value="Meine Homepage" onselect="this.blur()">
</form>
</body></html>

Erläuterung:

Im Beispiel wird ein Formular mit einem Eingabefeld definiert, das mit Text vorbelegt ist (value="Meine Homepage"). Wenn der Anwender versucht, den Text in dem Formular zu selektieren, etwa um ihn zu löschen, wird der Cursor wieder aus dem Eingabefeld entfernt. Dazu dient die Objektmethode blur().

 

JavaScript 1.0Netscape2.0MS IE3.0 onSubmit (beim Absenden des Formulars)

tritt ein, wenn der Anwender ein Formular absendet.

Nach JavaScript (Netscape) erlaubt erlaubt in folgendem HTML-Tag:
<form>

Beispiel:

<html><head><title>Test</title>
<script language="JavaScript">
function CheckInput()
{
 for(i=0; i<document.forms[0].elements.length; ++i)
  if(document.forms[0].elements[i].value == "")
   {
    alert("Es wurden nicht alle Felder ausgefuellt!");
	document.forms[0].elements[i].focus();
	return false;
   }
  return true; 
}
</script>
</head><body>
<form onSubmit="return CheckInput();">
Feld 1: <input size=30><br>
Feld 2: <input size=30><br>
Feld 3: <input size=30><br>
<input type=submit>
</form>
</body></html>

Erläuterung:

Das Beispiel enthält ein Formular mit mehreren Eingabefeldern. Beim Absenden des Formulars, also beim Klicken auf den Submit-Button, wird jedoch erst mal überprüft, ob in allen Feldern etwas eingegeben wurde. Wenn eines der Felder leergelassen wurde, wird das Formular nicht abgesendet. Stattdessen wird eine Fehlermeldung ausgegeben, und der Cursor wird in das erste nicht ausgefüllte Eingabefeld positioniert. Dazu ist im einleitenden <form>-Tag der Event-Handler onSubmit= notiert. Beim Absenden des Formulars wird dadurch die Funktion CheckInput() aufgerufen, die in einem Scriptbereich im Dateikopf notiert ist. Diese Funktion prüft in einer  for-Schleife alle einzelnen Formularfelder, ob diese einen leeren Inhalt haben (leere Zeichenkette ""). Ist das der Fall, wird die Fehlermeldung ausgegeben und auf das entsprechende Formularfeld positioniert. An den aufrufenden Event-Handler onSubmit wird der Wert false zurückgegeben. Nur wenn alle Formularfelder ausgefüllt wurden, wird true zurückgegeben. Dadurch wird entschieden, ob das Formular abgeschickt wird oder nicht.

 

JavaScript 1.0Netscape2.0MS IE3.0 onUnload (beim Verlassen der Datei)

Tritt ein, wenn eine HTML-Datei verlassen wird.

Nach JavaScript (Netscape) und HTML 4.0 erlaubt erlaubt in folgenden HTML-Tags:
<frameset> <body>

Beispiel:

<html><head><title>Test</title>
<script language="JavaScript">
Start = new Date();
Startzeit = Start.getTime();

function Aufenthalt()
{
 Ende = new Date();
 Endzeit = Ende.getTime();
 Aufenthalt = Math.floor((Endzeit - Startzeit) / 1000);
 alert("Sie waren " + Aufenthalt + " Sekunden auf dieser Seite");
}
</script>
</head>
<body onUload="Aufenthalt()">
</body></html>

Erläuterung:

Im Beispiel ist im Dateikopf ein JavaScript-Bereich definiert. Gleich beim Einlesen der Datei wird mit Hilfe des  Date-Objekts der aktuelle Zeitpunkt ermittelt und in der Variablen Startzeit gespeichert. Im einleitenden <body>-Tag der Datei ist der Event-Handler onUnload= notiert. Er tritt in Aktion, wenn die Datei - zum Beispiel durch Anklicken eines Verweises woandershin - verlassen wird. In diesem Fall wird im Beispiel die Funktion Aufenthalt() aufgerufen, die ebenfalls in dem Scriptbereich im Dateikopf steht. Diese Funktion ermittelt wieder den aktuellen Zeitpunkt, ermittelt dann aber noch die Differenz zwischen gespeicherter Startzeit und der jetzt ermittelten "Endzeit" und gibt das Ergebnis in einem Meldungsfenster aus.

 

JavaScript 1.0Netscape2.0MS IE3.0 javascript: (bei Verweisen)

Dies ist kein Event-Handler im engeren Sinn. Es handelt sich um eine Syntax, die eingeführt wurde, um JavaScript-Code als Verweisziel zu notieren.

Nach JavaScript (Netscape) erlaubt erlaubt in folgenden HTML-Tags:
<a> <area>

Beispiel:

<html><head><title>Test</title>
</head>
<body>
<a href="javascript:alert(document.lastModified)">Letzter Update</a>
</body></html>

Erläuterung:

Um einen Verweis dieser Art zu notieren, notieren Sie hinter dem Attribut href= in Anführungszeichen eine oder mehrere JavaScript-Anweisungen. Bei mehreren Anweisungen ist es jedoch besser, diese in einer Funktion zu notieren und beim Verweis dann diese Funktion aufzurufen.

weiter: Hinweise zur Objektreferenz
zurück: Reservierte Wörter
 

SELFHTML/Quickbar  JavaScript  Sprachelemente

© 1998  Stefan Münz, muenz@csi.com

1