Signatur
Beschreibung
window.captureEvents() stammt aus dem Ereignismodell von Netscape Navigator 4. Damals musste ein Fenster oder Dokument ausdrücklich anmelden, welche Ereignistypen es abfangen wollte, etwa Event.CLICK | Event.MOUSEMOVE. Erst danach wurden die passenden Handler auf dieser Ebene aufgerufen.
Der HTML-Standard legt heute fest, dass die Methode nichts tut. Sie ist nur noch vorhanden, damit sehr alter Code keinen TypeError auslöst. Übergebene Argumente werden ignoriert, und am Verhalten von Ereignissen ändert sich nichts.
Für neuen Code solltest du die Methode nie verwenden. Um Ereignisse schon in der Capture-Phase abzufangen, nimmst du addEventListener() mit der Option { capture: true }. Die Methode taucht praktisch nur noch auf, wenn du alte Skripte modernisierst.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $eventType | number | Früher eine Bitmaske aus Konstanten wie Event.CLICK. Heute wird der Wert vollständig ignoriert. In modernen Browsern gibt es diese Konstanten meist nicht mehr, dann ist der Wert undefined. |
Rückgabewert
undefined zurück und hat keine Nebenwirkung.Beispiele
Aufruf ohne Wirkung
// Der Aufruf ist erlaubt, bewirkt aber nichts
const result = window.captureEvents();
console.log(result);
console.log(typeof window.captureEvents);
Alten Netscape-Code modernisieren
// ALT (Netscape 4):
// window.captureEvents(Event.CLICK);
// window.onclick = handleClick;
// NEU: Klicks in der Capture-Phase auf window abfangen
const handleClick = (event) => {
console.log('Klick auf:', event.target.tagName);
};
window.addEventListener('click', handleClick, { capture: true });
// Später wieder abmelden (capture muss übereinstimmen)
window.removeEventListener('click', handleClick, { capture: true });
Legacy-Aufruf gefahrlos entfernen
// Prüfen, ob sich durch den Aufruf irgendetwas ändert
let count = 0;
const onKey = () => count++;
document.addEventListener('keydown', onKey);
window.captureEvents(); // hat keine Auswirkung auf onKey
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'a' }));
console.log(count);
// Wichtig · Fallstricke
- Veraltet: Die Methode ist deprecated. Laut HTML-Standard muss sie nichts tun. Browser dürfen sie künftig entfernen, und Linter wie TypeScript markieren sie als veraltet.
- Nicht verwechseln: Mit der Capture-Phase des DOM-Ereignismodells hat sie nichts zu tun. Dafür nimmst du
addEventListener(type, handler, { capture: true })oder als dritten Parametertrue. - Konstanten fehlen:
Event.CLICKund ähnliche Konstanten gibt es in modernen Browsern meist nicht mehr. Alter Code übergibt daher oft einfachundefined. Einen Fehler löst das nicht aus. - Das Gegenstück
window.releaseEvents()sowiedocument.captureEvents()unddocument.releaseEvents()sind ebenfalls wirkungslos. - Kompatibilität: Aus Rückwärtskompatibilität in Chrome, Firefox, Safari und Edge vorhanden, aber überall ohne Funktion.