[Edge]。→、
ユーザーがコンテキスト メニューを開こうとしたときに発行されます。このイベントは、通常、マウスの右ボタンをクリックするか、コンテキスト メニュー キーを押すことで発行されます。
後者の場合、コンテキストメニューは、フォーカスされた要素の左下に表示されます。ただし、要素がツリーの場合は、現在の行の左下に表示されます。
右クリックイベントが(イベントの Event.preventDefault() メソッドを呼び出して)無効化されていない場合は、対象となる要素で contextmenu イベントが発行されます。
| バブリング | あり |
|---|---|
| キャンセル | 可能 |
| インターフェイス | MouseEvent¶ |
| イベント ハンドラー プロパティ | oncontextmenu |
この例では、最初の段落で contextmenu イベントが発行されたときに、preventDefault() を使って contextmenu イベントの既定のアクションをキャンセルしています。その結果、第 1 段落は右クリックしても何も起こらず、第 2 段落にはブラウザーが提供する標準的なコンテキスト メニューが表示されることになります。
HTML:
<p id="noContextMenu">この段落ではコンテキストメニューが無効になっています。</p> <p>しかし、この段落では無効になっていません。</p>
JavaScript:
const noContext = document.getElementById('noContextMenu');
noContext.addEventListener('contextmenu', e => {
e.preventDefault();
});
HTML:
<SPAN id=IdTest>[SPAN要素。ここでマウスを操作してください…<B>[B要素]</B>テキスト<INPUT value="INPUT要素">]</SPAN><BR> <SPAN id=IdLog></SPAN><BR>
JavaScript:
function Job(eve){ //contextmenuイベントの処理:
D=eve; //=[object]:[object PointerEvent]
詳細
//isTrusted=[boolean]:true
//pointerId=[number]:1
//width=[number]:1
//height=[number]:1
//pressure=[number]:0
//tiltX=[number]:0
//tiltY=[number]:0
//azimuthAngle=[number]:0
//altitudeAngle=[number]:1.5707963267948966
//tangentialPressure=[number]:0
//twist=[number]:0
//pointerType=[string]:mouse
//isPrimary=[boolean]:false
//getCoalescedEvents=[function]:function getCoalescedEvents() { [native code] }
//getPredictedEvents=[function]:function getPredictedEvents() { [native code] }
//screenX=[number]:547
//screenY=[number]:323
//clientX=[number]:340
//clientY=[number]:248
//ctrlKey=[boolean]:false
//shiftKey=[boolean]:false
//altKey=[boolean]:false
//metaKey=[boolean]:false
//button=[number]:2
//buttons=[number]:0
//relatedTarget=[object]:null
//pageX=[number]:340
//pageY=[number]:1708
//x=[number]:340
//y=[number]:248
//offsetX=[number]:322
//offsetY=[number]:31
//movementX=[number]:0
//movementY=[number]:0
//fromElement=[object]:null
//toElement=[object]:null
//layerX=[number]:340
//layerY=[number]:1708
//getModifierState=[function]:function getModifierState() { [native code] }
//initMouseEvent=[function]:function initMouseEvent() { [native code] }
//view=[object]:[object Window]
//detail=[number]:0
//sourceCapabilities=[object]:[object InputDeviceCapabilities]
//which=[number]:3
//initUIEvent=[function]:function initUIEvent() { [native code] }
//type=[string]:contextmenu
//…
// eve.preventDefault();
let E=eve.target;
IdLog.innerHTML=E.tagName +":pageX:"+ eve.pageX +"、pageY:"+ eve.pageY +"、button:"+ eve.button;
}
IdTest.oncontextmenu=Job;