Element: 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只讀-
Y-Z 平面與包含指標(例如筆手寫筆)軸和 Y 軸的平面之間的平面角(以度為單位,範圍為
-90到90)。 PointerEvent.tiltY只讀-
X–Z 平面與包含指標(例如,筆尖)軸和 X 軸的平面之間的平面角度(以度為單位,範圍為
-90到90)。 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 事件 # event-type-contextmenu |
瀏覽器相容性
載入中…