Элемент: событие contextmenu
Событие contextmenu срабатывает, когда пользователь пытается открыть контекстное меню. Это событие обычно вызывается щелчком правой кнопкой мыши или нажатием клавиши контекстного меню.
В последнем случае контекстное меню отображается в нижнем левом углу фокусированного элемента, если элемент не является деревом, в этом случае контекстное меню отображается в нижнем левом углу текущей строки.
Любое событие правого щелчка, которое не отключено (вызовом метода события клика preventDefault()), приведет к срабатыванию события contextmenu на целевом элементе.
Примечание: Исключением из этого правила в Firefox является ситуация, когда пользователь удерживает клавишу Shift при щелчке правой кнопкой, в этом случае контекстное меню будет показано без срабатывания события contextmenu.
Синтаксис
Используйте имя события в методах, таких как addEventListener(), или установите свойство обработчика события.
addEventListener("contextmenu", (event) => {});
oncontextmenu = (event) => {};
Тип события
Тип PointerEvent. Наследует от MouseEvent.
Примечание: В более ранних версиях спецификации тип события для этого события был 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 |
См. также
© 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