W3docs

Globale Ereignis-Attribute

Globale Ereignis-Attribute ermöglichen es, mit JavaScript auf Browser-Ereignisse zu reagieren, z. B. bei Klicks oder Formulareingaben.

Ein Ereignis tritt auf, wenn der Browser auf eine bestimmte Aktion reagiert — ein Benutzer klickt eine Maustaste, drückt eine Taste, spielt ein Video ab, sendet ein Formular, ändert die Fenstergröße und so weiter. Um auf ein Ereignis zu reagieren, fügt man einen Handler hinzu: ein Skript-Fragment (in der Regel JavaScript), das ausgeführt wird, wenn das Ereignis ausgelöst wird.

HTML ermöglicht es, einen Handler direkt im Markup über ein Ereignis-Attribut anzuhängen. Jedes Attribut auf dieser Seite beginnt mit on, gefolgt vom Ereignisnamen (onclick, onkeydown, onsubmit, …). Alle wurden in HTML5 hinzugefügt und akzeptieren JavaScript-Code als Wert:

<button onclick="alert('Clicked!')">Click me</button>

Diese Ereignis-Attribute sind global — die meisten können auf jedem Element verwendet werden — aber jedes ist nur im richtigen Kontext sinnvoll (Formular-Attribute bei Formularelementen, Media-Attribute bei <audio>/<video> usw.).

Warnung

Inline-on*-Attribute werden in modernem Code nicht empfohlen. Sie vermischen Verhalten mit dem Markup, erlauben nicht ohne Weiteres mehrere Handler und werden durch eine strikte Content Security Policy blockiert. Bevorzuge addEventListener in einem separaten Skript, das HTML und JavaScript trennt und es mehreren Handlern erlaubt, dasselbe Ereignis zu beobachten:

<button id="myBtn">Click me</button>

<script>
  const btn = document.getElementById("myBtn");
  btn.addEventListener("click", () => {
    alert("Clicked!");
  });
</script>

Die folgenden Tabellen listen die Ereignis-Attribute nach Kategorie auf. Eine ausführlichere Erläuterung der Funktionsweise von Ereignissen im Browser findest du unter JavaScript Events und den verwandten globalen HTML-Attributen.

Fenster-Ereignis-Attribute

Fenster-Ereignisse werden für das window-Objekt ausgelöst. Sie werden in der Regel am <body>-Tag platziert, wo der Browser sie auf window abbildet.

AttributBeschreibung
onafterprintWird ausgelöst, nachdem das Dokument gedruckt wurde.
onbeforeprintWird ausgelöst, bevor das Dokument gedruckt wird.
onbeforeunloadWird ausgelöst, bevor das Dokument entladen wird (z. B. wenn der Benutzer die Seite verlassen möchte).
onblurWird ausgelöst, wenn das Fenster den Fokus verliert (der Benutzer wechselt zu einem anderen Tab oder einer anderen App).
onerrorWird ausgelöst, wenn beim Laden des Dokuments oder einer Ressource ein Fehler auftritt.
onhashchangeWird ausgelöst, wenn sich das Fragment (der Teil der URL nach #) ändert.
onloadWird ausgelöst, wenn die gesamte Seite — Bilder, CSS und Skripte — vollständig geladen wurde.
onmessageWird ausgelöst, wenn das Fenster eine Nachricht empfängt (z. B. von postMessage).
onofflineWird ausgelöst, wenn der Browser seine Netzwerkverbindung verliert.
ononlineWird ausgelöst, wenn der Browser seine Netzwerkverbindung wiederherstellt.
onpagehideWird ausgelöst, wenn der Benutzer von der Seite wegnavigiert.
onpageshowWird ausgelöst, wenn der Benutzer zur Seite navigiert.
onpopstateWird ausgelöst, wenn sich der aktive Verlaufseintrag ändert.
onresizeWird ausgelöst, wenn das Fenster in seiner Größe verändert wird.
onstorageWird ausgelöst, wenn ein Web-Storage-Bereich (localStorage/sessionStorage) aktualisiert wird.
onunloadWird ausgelöst, wenn die Seite entladen wird (das Dokument wird entfernt).
<body onload="document.body.style.background = '#eef'">
  <p>This page changes its background colour once it has loaded.</p>
</body>

Formular-Ereignis-Attribute

Ein Ereignis, das innerhalb eines Formulars auftreten kann, wird als Formular-Ereignis bezeichnet. Formular-Ereignisse treten auf, wenn ein Benutzer ein Formular öffnet oder schließt, zwischen Formularen wechselt oder mit Daten in einem Formular arbeitet.

Formular-Ereignis-Attribute können auf alle HTML-Elemente angewendet werden, werden jedoch in der Regel bei Formularelementen wie <input>, <select> und <textarea> eingesetzt.

AttributBeschreibung
onblurWird ausgelöst, wenn ein Element den Fokus verliert (der Benutzer verlässt das Steuerelement per Tab oder Klick).
onchangeWird ausgelöst, wenn sich der Wert eines Steuerelements geändert hat und das Steuerelement den Fokus verliert.
oncontextmenuWird ausgelöst, wenn das Kontextmenü (Rechtsklick) am Element geöffnet wird.
onfocusWird ausgelöst, wenn ein Element den Fokus erhält.
oninputWird sofort ausgelöst, jedes Mal wenn sich der Wert eines Steuerelements ändert.
oninvalidWird ausgelöst, wenn ein gesendetes Steuerelement die Constraint-Validierung nicht besteht.
onresetWird ausgelöst, wenn ein Formular auf seine Ausgangswerte zurückgesetzt wird.
onsearchWird ausgelöst, wenn der Benutzer in einem <input type="search">-Feld sucht.
onselectWird ausgelöst, wenn der Benutzer Text in einem <input> oder <textarea> markiert.
onsubmitWird ausgelöst, wenn ein Formular abgesendet wird.
<form onsubmit="alert('Submitting…'); return false;">
  <input type="text" name="name"
         onfocus="this.style.background = '#ffd'"
         onblur="this.style.background = ''"
         placeholder="Your name">
  <button type="submit">Send</button>
</form>

Die Rückgabe von false aus onsubmit (oder das Aufrufen von event.preventDefault() in JavaScript) verhindert, dass das Formular tatsächlich gesendet wird — praktisch beim Testen.

Tastatur-Ereignis-Attribute

Die Tastatur-Ereignis-Attribute können auf alle HTML-Elemente angewendet werden.

AttributBeschreibung
onkeydownWird ausgelöst, wenn eine Taste gedrückt wird. Wiederholt sich, solange die Taste gehalten wird.
onkeypressWird ausgelöst, wenn eine Zeichentaste gedrückt wird. Veraltet — verwende stattdessen onkeydown.
onkeyupWird ausgelöst, wenn eine gedrückte Taste losgelassen wird.
<input type="text"
       onkeyup="document.getElementById('echo').textContent = this.value"
       placeholder="Type here">
<p>You typed: <span id="echo"></span></p>

Maus-Ereignis-Attribute

Maus-Ereignisse treten auf, wenn die Maus mit dem HTML-Dokument interagiert. Die Attribute können auf alle HTML-Elemente angewendet werden.

AttributBeschreibung
onclickWird ausgelöst, wenn auf das Element geklickt wird.
ondblclickWird ausgelöst, wenn das Element doppelt angeklickt wird.
ondragWird wiederholt ausgelöst, während ein Element gezogen wird.
ondragendWird ausgelöst, wenn ein Ziehvorgang endet.
ondragenterWird ausgelöst, wenn ein gezogenes Element ein gültiges Ablageziel betritt.
ondragleaveWird ausgelöst, wenn ein gezogenes Element ein gültiges Ablageziel verlässt.
ondragoverWird wiederholt ausgelöst, während sich ein gezogenes Element über einem gültigen Ablageziel befindet.
ondragstartWird ausgelöst, wenn der Benutzer beginnt, ein Element zu ziehen.
ondropWird ausgelöst, wenn ein gezogenes Element auf einem gültigen Ablageziel abgelegt wird.
onmousedownWird ausgelöst, wenn eine Maustaste über dem Element gedrückt wird.
onmousemoveWird ausgelöst, wenn der Mauszeiger sich über dem Element bewegt.
onmouseoutWird ausgelöst, wenn der Mauszeiger das Element verlässt.
onmouseoverWird ausgelöst, wenn der Mauszeiger das Element betritt.
onmouseupWird ausgelöst, wenn eine Maustaste über dem Element losgelassen wird.
onmousewheelVeraltet — verwende stattdessen onwheel.
onscrollWird ausgelöst, wenn die Scrollleiste eines Elements gescrollt wird.
onwheelWird ausgelöst, wenn das Mausrad über dem Element nach oben oder unten gedreht wird.
<div onmousemove="this.textContent = event.offsetX + ', ' + event.offsetY"
     style="width:240px; height:120px; background:#eef; text-align:center; line-height:120px;">
  Move the mouse here
</div>

Zwischenablage-Ereignis-Attribute

AttributBeschreibung
oncopyWird ausgelöst, wenn der Inhalt eines Elements kopiert wird.
oncutWird ausgelöst, wenn der Inhalt eines Elements ausgeschnitten wird.
onpasteWird ausgelöst, wenn Inhalt in ein Element eingefügt wird.

Media-Ereignis-Attribute

Media-Ereignisse treten in Medienelementen wie Video, Bild und Audio auf. Die Attribute können auf alle HTML-Elemente angewendet werden, werden jedoch in der Regel in audio-, embed-, img-, object- und video-Elementen verwendet.

AttributBeschreibung
onabortWird ausgelöst, wenn das Laden des Mediums abgebrochen wird.
oncanplayWird ausgelöst, wenn der Browser genug gepuffert hat, um die Wiedergabe zu starten.
oncanplaythroughWird ausgelöst, wenn der Browser schätzt, dass er ohne Pufferunterbrechung durchspielen kann.
oncuechangeWird ausgelöst, wenn sich der aktive Cue einer Textspur (z. B. Untertitel) ändert.
ondurationchangeWird ausgelöst, wenn sich die Dauer des Mediums ändert.
onemptiedWird ausgelöst, wenn das Medium leer wird (z. B. wenn die Verbindung unterbrochen wird).
onendedWird ausgelöst, wenn die Wiedergabe das Ende des Mediums erreicht.
onerrorWird ausgelöst, wenn beim Laden des Mediums ein Fehler auftritt.
onloadeddataWird ausgelöst, wenn das aktuelle Frame der Mediendaten geladen wurde.
onloadedmetadataWird ausgelöst, wenn Metadaten (Dauer, Abmessungen, …) geladen wurden.
onloadstartWird ausgelöst, wenn der Browser beginnt, das Medium zu laden.
onpauseWird ausgelöst, wenn die Wiedergabe pausiert wird.
onplayWird ausgelöst, wenn die Wiedergabe startet oder fortgesetzt wird.
onplayingWird ausgelöst, wenn die Wiedergabe tatsächlich läuft (z. B. nach dem Puffern).
onprogressWird periodisch ausgelöst, während der Browser das Medium lädt.
onratechangeWird ausgelöst, wenn sich die Wiedergabegeschwindigkeit ändert (z. B. Schnellvorlauf).
onseekedWird ausgelöst, wenn ein Suchvorgang endet.
onseekingWird ausgelöst, wenn ein Suchvorgang beginnt.
onstalledWird ausgelöst, wenn der Browser versucht, aber keine Mediendaten abrufen kann.
onsuspendWird ausgelöst, wenn das Laden des Mediums absichtlich pausiert wird.
ontimeupdateWird ausgelöst, wenn sich die Wiedergabeposition während der Wiedergabe ändert.
onvolumechangeWird ausgelöst, wenn sich die Lautstärke ändert (einschließlich Stummschaltung).
onwaitingWird ausgelöst, wenn die Wiedergabe stoppt, weil das nächste Frame noch nicht gepuffert ist.

Sonstige Ereignisse

AttributBeschreibung
ontoggleWird ausgelöst, wenn der Benutzer ein <details>-Element öffnet oder schließt.
Info

Einige Attribute, die in älteren Referenzen zu finden sind — onredo, onundo und onshow — waren nie Bestandteil des Standard-HTML oder werden von Browsern nicht unterstützt und wurden daher hier weggelassen.

Übungen

Übung
Was sind globale Ereignis-Attribute in HTML?
Was sind globale Ereignis-Attribute in HTML?
Was this page helpful?