DOM

MouseEvent.initMouseEvent() メソッド

 編集:2022.10.06 by T.A.

[Edge]。非推奨。→

非推奨: この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

MouseEvent を指定の内容で初期化します。通常は Document.createEvent() メソッドで生成された MouseEvent を扱います。

mdn: いったん(通常は Document.createEvent() メソッドで)生成されたマウス イベント MouseEvent の値を初期化します。

警告: このメソッドは非推奨になったので、今後は使用しないでください。
代わりに MouseEvent() など、特定のイベントのコンストラクターを使用してください。のページに、使用方法についての詳しい情報があります。

この方法で初期化されるイベントは、Document.createEvent() メソッドで作成されたものでなければなりません。このメソッドは、EventTarget.dispatchEvent() を使用してイベントが配信される前に、イベントを設定するために呼び出す必要があります。

構文
MouseEvent.initMouseEvent(type, canBubble, cancelable, view,
  detail, screenX, screenY, clientX, clientY,
  ctrlKey, altKey, shiftKey, metaKey,
  button, relatedTarget
)
type このイベントの種別(Event.type)を設定する文字列です。マウス イベントで使用可能な種別には、clickmousedownmouseupmouseovermousemovemouseout があります。
canBubble 省略可。このイベントがバブリングできるかどうか。Event.bubbles の値を設定します。
cancelable 省略可。このイベントの既定のアクションを止めることができるかどうか。Event.cancelable の値を設定します。
view 省略可。このイベントの AbstractView です。ここでは window オブジェクトを渡す必要があります。UIEvent.view の値を設定します。
detail 省略可。このイベントのマウス クリック回数を表す数値?。UIEvent.detail の値を設定します。
screenX 省略可。このイベントのスクリーン X 座標を表す数値?。MouseEvent.screenX の値を設定します。
screenY 省略可。このイベントのスクリーン Y 座標を表す数値?。MouseEvent.screenY の値を設定します。
clientX 省略可。このイベントのクライアント X 座標を表す数値?。MouseEvent.clientX の値を設定します。
clientY 省略可。このイベントのクライアント Y 座標を表す数値?。MouseEvent.clientY の値を設定します。
ctrlKey 省略可。このイベント中に control キーが押されていたかどうか。MouseEvent.ctrlKey の値を設定します。
altKey 省略可。このイベント中に alt キーが押されていたかどうか。MouseEvent.altKey の値を設定します。
shiftKey 省略可。このイベント中に shift キーが押されていたかどうか。MouseEvent.shiftKey の値を設定します。
metaKey 省略可。このイベント中に meta キーが押されていたかどうか。MouseEvent.metaKey の値を設定します。
button 省略可。このイベントの押されたマウスなどのボタン。→button
relatedTarget 省略可。このイベントに関連する EventTarget。一部のイベント種別(例えば mouseovermouseout)でのみ使用されます。それ以外の場合は null を渡してください。→relatedTarget
戻り値

¶なし。

click

HTML:

<SPAN id=IdTest>[SPAN要素。ここクリック操作…]</SPAN><BR>
<SPAN id=IdLog></SPAN>

JavaScript:

function Job(eve){ //click イベントの処理:
  D=eve;
  IdLog.innerHTML=IdLog.innerHTML +"●"; //表示。
}
IdTest.onclick=Job;

その後、

eve=document.createEvent('MouseEvents');
eve.initMouseEvent('click', true, true, window,
  3, 10, 20, 30, 40,
  true, false, false, false,
  1, null
);
IdTest.dispatchEvent(eve);

click イベントが発生し、得られたイベントオブジェクトは、

//D=[object]:[object MouseEvent]
詳細//isTrusted=[boolean]:false //screenX=[number]:10 //screenY=[number]:20 //clientX=[number]:30 //clientY=[number]:40 //ctrlKey=[boolean]:true //shiftKey=[boolean]:false //altKey=[boolean]:false //metaKey=[boolean]:false //button=[number]:1 //buttons=[number]:0 //relatedTarget=[object]:null //pageX=[number]:30 //pageY=[number]:2153 //x=[number]:30 //y=[number]:40 //offsetX=[number]:11 //offsetY=[number]:-40 //movementX=[number]:0 //movementY=[number]:0 //fromElement=[object]:null //toElement=[object]:[object HTMLSpanElement] //layerX=[number]:30 //layerY=[number]:2153 //getModifierState=[function]:function getModifierState() { [native code] } //initMouseEvent=[function]:function initMouseEvent() { [native code] } //view=[object]:[object Window] //detail=[number]:3 //sourceCapabilities=[object]:null //which=[number]:2 //initUIEvent=[function]:function initUIEvent() { [native code] } //type=[string]:click //target=[object]:[object HTMLSpanElement] //currentTarget=[object]:null //eventPhase=[number]:0 //bubbles=[boolean]:true //cancelable=[boolean]:true //defaultPrevented=[boolean]:false //composed=[boolean]:false //…
mousedown、mouseupで右クリック動作の実験

HTML:

<SPAN id=IdTest>[SPAN要素。ここ右クリック操作…]</SPAN><BR>
<SPAN id=IdLog></SPAN>

JavaScript:

function Job(eve){ //mousedown イベントの処理:
  D=eve;
  IdLog.innerHTML=IdLog.innerHTML +"●"; //表示。
}
function Job2(eve){ //mouseup イベントの処理:
  DA=eve;
  IdLog.innerHTML=IdLog.innerHTML +"●"; //表示。
}
IdTest.onmousedown=Job;
IdTest.onmouseup=Job2;

その後、

eve=document.createEvent('MouseEvents');
eve.initMouseEvent('mousedown', false, false, window,
  1, 439, 192, 232, 117,
  false, false, false, false,
  2, null
);
IdTest.dispatchEvent(eve);

eve=document.createEvent('MouseEvents');
eve.initMouseEvent('mouseup', false, false, window,
  1, 439, 192, 232, 117,	//実際の操作時の値。
  false, false, false, false,
  2, null
);
IdTest.dispatchEvent(eve);

button=2で、mousedown 続いて mouseup と発生させてみたが、右クリックの動作はしなかった。


テスト