Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Element: contextmenu-Ereignis

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Das contextmenu-Ereignis wird ausgelöst, wenn der Benutzer versucht, ein Kontextmenü zu öffnen. Dies geschieht in der Regel durch einen Klick mit der rechten Maustaste oder durch Drücken der Kontextmenütaste.

Im letzteren Fall wird das Kontextmenü links unten am fokussierten Element angezeigt. Handelt es sich bei dem Element um eine Baumansicht, wird es stattdessen links unten an der aktuellen Zeile angezeigt.

Jeder Rechtsklick, dessen Standardverhalten nicht durch Aufrufen der Methode preventDefault() für das Klickereignis verhindert wird, löst ein contextmenu-Ereignis am Zielelement aus.

Hinweis: In Firefox gibt es eine Ausnahme: Wenn Sie beim Rechtsklick die Shift-Taste gedrückt halten, wird das Kontextmenü angezeigt, ohne dass ein contextmenu-Ereignis ausgelöst wird.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("contextmenu", (event) => { })

Alternativ können Sie ihn der Event-Handler-Eigenschaft des Interfaces zuweisen:

js
oncontextmenu = (event) => { }

Ereignistyp

Ein PointerEvent. Erbt von MouseEvent.

Event UIEvent MouseEvent PointerEvent

Hinweis: In früheren Versionen der Spezifikation war der Ereignistyp für dieses Ereignis ein MouseEvent. Weitere Informationen finden Sie unter Browser-Kompatibilität.

Beispiele

Das contextmenu-Ereignis abbrechen

In diesem Beispiel wird die Standardaktion des contextmenu-Ereignisses mit preventDefault() verhindert, wenn das Ereignis am ersten Absatz ausgelöst wird. Daher geschieht bei einem Rechtsklick auf den ersten Absatz nichts, während beim zweiten Absatz das Standardkontextmenü Ihres Browsers angezeigt wird.

Hinweis: Wenn Sie in Firefox beim Rechtsklick die Shift-Taste gedrückt halten, wird das Kontextmenü angezeigt, ohne dass das contextmenu-Ereignis ausgelöst wird. Das Verhindern des Ereignisses kann die Anzeige des Kontextmenüs daher in diesem Fall nicht unterbinden.

HTML

html
<p id="noContextMenu">The context menu has been disabled on this paragraph.</p>
<p>But it has not been disabled on this one.</p>

JavaScript

js
const noContext = document.getElementById("noContextMenu");

noContext.addEventListener("contextmenu", (e) => {
  e.preventDefault();
});

Ergebnis

Spezifikationen

Spezifikation
Pointer Events
# contextmenu

Browser-Kompatibilität

Siehe auch