Element: contextmenu event
{{APIRef("Pointer Events")}}
In the latter case, the context menu is displayed at the bottom left of the focused element, unless the element is a tree, in which case the context menu is displayed at the bottom left of the current row.
Any right-click event that is not disabled (by calling the click event's {{domxref("Event.preventDefault", "preventDefault()")}} method) will result in a contextmenu event being fired at the targeted element.
[!NOTE]NOTE: An exception to this in Firefox: if the user holds down the Shift key while right-clicking, then the context menu will be shown without acontextmenuevent being fired.
Syntax
Use the event name in {{domxref("EventTarget/addEventListener", "addEventListener()")}}:
addEventListener("contextmenu", (event) => { })
Alternatively, assign to the event handler property of the interface:
oncontextmenu = (event) => { }
Event type
A {{domxref("PointerEvent")}}PointerEvent. Inherits from {{domxref("MouseEvent")}}MouseEvent.
{{InheritanceDiagram("PointerEvent")}}
[!NOTE]NOTE: In earlier versions of the specification, the event type for this event was a{{domxref("MouseEvent")}}MouseEvent. Check browser compatibility for more information.
Examples
Canceling the contextmenu event
In this example, the default action of the contextmenu event is canceled using preventDefault() when the contextmenu event is fired at the first paragraph. As a result, the first paragraph will do nothing when right-clicked, while the second paragraph will show the standard context menu offered by your browser.
[!NOTE]NOTE: In Firefox, if you hold down the Shift key while right-clicking, then the context menu is shown without thecontextmenuevent being fired. Therefore, canceling the event does not stop the context menu from being shown.
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
const noContext = document.getElementById("noContextMenu");
noContext.addEventListener("contextmenu", (e) => {
e.preventDefault();
});
Result
{{EmbedLiveSample("Canceling the contextmenu event")}}
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Learn: Introduction to events
{{domxref("Element/auxclick_event", "auxclick")}}auxclick{{domxref("Element/click_event", "click")}}click{{domxref("Element/dblclick_event", "dblclick")}}dblclick{{domxref("Element/mousedown_event", "mousedown")}}mousedown{{domxref("Element/mouseup_event", "mouseup")}}mouseup{{domxref("Element/pointerdown_event", "pointerdown")}}pointerdown{{domxref("Element/pointerup_event", "pointerup")}}pointerup