Spec-Zone.ru › Web APIs

Элемент: событие contextmenu

Событие contextmenu срабатывает, когда пользователь пытается открыть контекстное меню. Это событие обычно вызывается щелчком правой кнопкой мыши или нажатием клавиши контекстного меню.

В последнем случае контекстное меню отображается в нижнем левом углу фокусированного элемента, если элемент не является деревом, в этом случае контекстное меню отображается в нижнем левом углу текущей строки.

Любое событие правого щелчка, которое не отключено (вызовом метода события клика preventDefault()), приведет к срабатыванию события contextmenu на целевом элементе.

Примечание: Исключением из этого правила в Firefox является ситуация, когда пользователь удерживает клавишу Shift при щелчке правой кнопкой, в этом случае контекстное меню будет показано без срабатывания события contextmenu.

Синтаксис

Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика события.

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

oncontextmenu = (event) => {};

Тип события

Тип PointerEvent. Наследует от MouseEvent.

Событие UIEvent MouseEvent PointerEvent

Примечание: В более ранних версиях спецификации тип события для этого события был MouseEvent. Для получения дополнительной информации ознакомьтесь со совместимостью с браузерами.

Свойства события

Этот интерфейс наследует свойства от MouseEvent и Event.

PointerEvent.altitudeAngle Только для чтения Экспериментальный

Представляет собой угол между осью преобразователя (указателя или стилуса) и плоскостью X-Y экрана устройства.

PointerEvent.azimuthAngle Только для чтения Экспериментальный

Представляет собой угол между плоскостью Y-Z и плоскостью, содержащей ось преобразователя (указатель или стилус) и ось Y.

PointerEvent.pointerId Только для чтения

Уникальный идентификатор указателя, вызвавшего событие.

PointerEvent.width Только для чтения

Ширина (величина по оси X) геометрии контакта указателя в пикселях CSS.

PointerEvent.height Только для чтения

Высота (величина по оси Y) геометрии контакта указателя в пикселях CSS.

PointerEvent.pressure Только для чтения

Нормализованное давление ввода указателя в диапазоне 0 до 1, где 0 и 1 представляют минимальное и максимальное давление соответственно, которые может обнаружить оборудование.

PointerEvent.tangentialPressure Только для чтения

Нормализованное касательное давление ввода указателя (также известное как боковое давление или напряжение цилиндра) в диапазоне -1 до 1, где 0 представляет собой нейтральное положение управления.

PointerEvent.tiltX Только для чтения

Угол в плоскости (в градусах, в диапазоне от -90 до 90) между плоскостью Y–Z и плоскостью, содержащей ось указателя (например, стилуса пера) и ось Y.

PointerEvent.tiltY Только для чтения

Угол в плоскости (в градусах, в диапазоне от -90 до 90) между плоскостью X–Z и плоскостью, содержащей ось указателя (например, стилуса пера) и ось X.

PointerEvent.twist Только для чтения

По часовой стрелке вращение указателя (например, пера стилуса) вокруг его главной оси в градусах, со значением в диапазоне 0 до 359.

PointerEvent.pointerType Только для чтения

Указывает тип устройства, вызвавшего событие (мышь, ручка, сенсорный экран и т. д.).

PointerEvent.isPrimary Только для чтения

Указывает, является ли указатель основным указателем данного типа указателя.

Примеры

Отмена события contextmenu

В этом примере стандартное действие события contextmenu отменяется с помощью preventDefault(), когда событие contextmenu срабатывает на первом абзаце. В результате, при правом клике на первый абзац ничего не произойдет, а на второй абзац будет показано стандартное контекстное меню, предлагаемое вашим браузером.

Примечание: В Firefox, если вы удерживаете клавишу Shift при щелчке правой кнопкой, контекстное меню отображается без срабатывания события contextmenu. Следовательно, отмена события не предотвращает отображение контекстного меню.

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();
});

Результат

Спецификации

Спецификация
UI Events
# event-type-contextmenu

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
contextmenu_event 1 12 6 10.5 3 18 6 11.1 Нет 1.0 4.4
type_pointerevent 92 92 Нет 78 Нет 92 Нет 65 Нет 16.0 92

См. также

  • Учебник: Введение в события
  • auxclick
  • click
  • dblclick
  • mousedown
  • mouseup
  • pointerdown
  • pointerup

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/contextmenu_event

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API