[102] DOMイベントの通知処理の実行のことを、 ディスパッチといいます。
EventTarget
インターフェイス dispatchEvent
メソッド[23] EventTarget
インターフェイスの
dispatchEvent
メソッド >>3
は、イベントをdispatchするものです。
[31] ディスパッチは、 引数イベント、対象、 遺物対象上書きフラグ flagについて、 次のようにしなければなりません >>22。
[71] つまり、まずイベントの対象から祖先に向けた木上のオブジェクトのリストを取得してから、 その各オブジェクトについてイベントリスナーを実行します。 イベントリスナーの実行は、祖先から対象に向かう捕獲と、 対象から祖先に向かう bubbles の2段階に分かれます。 イベントリスナー内で親子関係が操作されても、 イベントの処理には影響を与えません。
[37] ここで、イベントの項目についての処理とは、 legacyOutputDidListenersThrowFlag について次のようにすることをいいます (呼び出し) >>22。
[79] リスナー群とイベントと legacyOutputDidListenersThrowFlag に関する inner invoke は、次のようにします >>22。
eventPhase
が CAPTURING_PHASE
でリスナーの捕獲フラグが偽、またはeventPhase
が BUBBLING_PHASE
でリスナーの捕獲フラグが真currentTarget
のイベントリスナー群から削除します。Window
の場合、handleEvent
メソッドを実行します。Window
の場合、[61] この手続きより、
addEventListener
によって新たにイベントリスナーを追加しても、
そのイベントの同じ currentTarget
の実行中は、
実行されません。
逆に removeEventListener
によるイベントリスナーの削除は、
即時反映されます。
[62] stopPropagation
も、
そのイベントの同じ currentTarget
の実行中は反映されません。
stopImmediatePropagation
は即時反映されます。
[125] DOM Standard では明確に記述されていませんが、 走っているスクリプトの実行中断があった場合、 そこで dispatch も中断して、中断を表す例外を dispatch の例外として再び投げることが期待されていると思われます。
[118] ディスパッチは、発火や dispatchEvent
の他、
いろいろな場所から呼び出されます。
[122] legacyOutputDidListenersThrowFlag は、 Indexed DB で使われています。イベントリスナーが例外を投げると、 トランザクションは取り消されます。
[9] ディスパッチしたイベントがキャンセルされるかどうかで、その後の動作が変わることがあります。
[10] ディスパッチによってイベントリスナーが実行されたかどうかで、その後の動作が変わることがあります。
[12] prompt to unload a document は、 beforeunload
のイベントリスナーが実行されたかどうかで動作が変わります。
[13] unload a document は、 unload
のイベントリスナーが実行されたかどうかで動作が変わります。
[19] IE事象モデルには dispatchEvent
と似たものとして
fireEvent
がありました。
fireEvent
の項を参照。[20] DOM3 まではディスパッチと発火は同義としていました。
[21] XML Events 2 ( ( 版)) http://www.w3.org/TR/xml-events2/#section-dispatchEvent-element
[2] Re: [dom-events] dispatchEvent()ing a UA-dispatched event (Stewart Brodie 著, 版) http://lists.w3.org/Archives/Public/www-dom/2010AprJun/0042.html
[18] Bug 12230 – Some synthetic events cause actions ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=12230
[6] Allow passing a target override to the dispatch algorithm. · d0f2c0b · whatwg/dom ( ( 版)) https://github.com/whatwg/dom/commit/d0f2c0bbc940061ac2a4623553de5c26409cce96
[7] Web Applications 1.0 r8271 Use DOM's hooks for defining the magic 'load' event in The End ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8270&to=8271
[8] Allow passing a target override to the dispatch algorithm. · d0f2c0b · whatwg/dom ( ( 版)) https://github.com/whatwg/dom/commit/d0f2c0bbc940061ac2a4623553de5c26409cce96
[11] Check dispatch flag before initializing https://www.w3.org/Bugs/Public/s... · ccacdec · whatwg/dom ( ( 版)) https://github.com/whatwg/dom/commit/ccacdec1b3c99019677e8737c8f8550583984e67
[14] Clean up the event dispatch algorithms · whatwg/dom@d8cb495 ( 版) https://github.com/whatwg/dom/commit/d8cb49567c7018d4f9cfddf30fbc24f40693a9b0
[15] Fix the incorrect side effects of dispatch' target override · whatwg/dom@b8a8eb2 ( 版) https://github.com/whatwg/dom/commit/b8a8eb272d1ff3c654b3c5ae690c990f1d0cd700
[16] Fix #84: event listeners can be removed but not added during invocation · whatwg/dom@02710dd ( 版) https://github.com/whatwg/dom/commit/02710dd77e89586ad78b9bce0a3b6fe5f9b2ad19
[17] element.dispatchEvent - MDC Doc Center ( ( 版)) https://developer.mozilla.org/ja/DOM/element.dispatchEvent
[63] Check for "stop immediate propagation flag" earlier in invoke (no nor… · whatwg/dom@1cce4fd ( 版) https://github.com/whatwg/dom/commit/1cce4fd5e39ac48c047d9de3d5efefc0a909db14
[64] Add EventListenerOptions and passive event listener feature · whatwg/dom@253a21b ( 版) https://github.com/whatwg/dom/commit/253a21b8e78e37447c47983916a7cf39c4f6a3c5
[67] Integrate HTML's monkey patch to the event path · whatwg/dom@2d7b637 ( 版) https://github.com/whatwg/dom/commit/2d7b637b31fc6bad8f6c4743fb61016392fac382
[68] Remove event path monkey patch · whatwg/html@dad854e ( 版) https://github.com/whatwg/html/commit/dad854e4c1f5f7098a1b1ec7f33e2218796f7442
[72] Fix #169: do not invoke target while iterating eventPath · whatwg/dom@26f7947 ( 版) https://github.com/whatwg/dom/commit/26f7947dce80934f75e0b399a40c444132e2ab9b
[74] Check for "stop immediate propagation flag" earlier in invoke (no nor… · whatwg/dom@1cce4fd ( 版) https://github.com/whatwg/dom/commit/1cce4fd5e39ac48c047d9de3d5efefc0a909db14
[75] Fix #156: add legacy event type check to invoke algorithm · whatwg/dom@a026ccf ( 版) https://github.com/whatwg/dom/commit/a026ccf3efa8d34fb0cac580928f61d18b1e9f76
[87] Clarify EventTarget.dispatchEvent() · whatwg/dom@59d283a ( 版) https://github.com/whatwg/dom/commit/59d283ab9c5d2e3dd823bca21eecaaaca402b181
[88] Properly check event's stop immediate propagation flag in "inner invoke" · whatwg/dom@b7a94a2 ( 版) https://github.com/whatwg/dom/commit/b7a94a2d90b37330ae9a5e5a125ce9047f867e42
[90] Editorial: check stop propagation flag at start of invoke · whatwg/dom@a768d8e ( 版) https://github.com/whatwg/dom/commit/a768d8eef0584ea8ee831895b5c9dc8bcf363afc
[91] Enable an event listener to be invoked just once · whatwg/dom@e002d78 ( 版) https://github.com/whatwg/dom/commit/e002d7811533e276c9927b237748c4e170f4cb10
[96] Address reentrancy issue with "once" listeners (annevk著, ) https://github.com/whatwg/dom/commit/5324200d70eb23276cb58b814416e19c436104f2
[48] Shadow: define event retargeting for shadow trees (annevk著, ) https://github.com/whatwg/dom/commit/ed94c9f2f1850b2e6a9b357c6870186859da4c2d
[94] Rename scoped to composed and invert its meaning (annevk著, ) https://github.com/whatwg/dom/commit/6e1b0386644301859c697ee2e868313963d2a602
[97] Shadow: define event's relatedTarget handling (hayatoito著, ) https://github.com/whatwg/dom/commit/ef69a247681532e6102ced9a78aabf7f7a536108
[99] Shadow: add "retargeting steps" to the dispatch algorithm (hayatoito著, ) https://github.com/whatwg/dom/commit/fbc0c312c3ead6940718e3d2d7511f2b014011e1
[101] Unset stop propagation flags after dispatch (annevk著, ) https://github.com/whatwg/dom/commit/806d4aab584f6fc38c21f8e088b51b8ba3e27e20
[103] Shadow: adjust composedPath() when currentTarget is a Window object (hayatoito著, ) https://github.com/whatwg/dom/commit/2153769e1ecf55f2d202fd5c6f996023b34545e5
[104] Redesign fire an event and target override (annevk著, ) https://github.com/whatwg/dom/commit/e19d7eef74fb83792415a4a78ed866d28f4cc543
[105] Editorial: major cleanup around firing and dispatching events (annevk著, ) https://github.com/whatwg/html/commit/8ffbd146d4709057e45dd6cfc81e7a70897050c5
[106] Shadow: do not dispatch an event when target is reletedTarget (hayatoito著, ) https://github.com/whatwg/dom/commit/afac5044c18fa871837b0a86d21f338b29f7a292
[110] Define special dispatch behavior for click events (annevk著, ) https://github.com/whatwg/dom/commit/cb12fd4e2db68a9d86841a13a73611e16f9f1fb4
[119] Pass listeners to inner invoke (annevk著, ) https://github.com/whatwg/dom/commit/627eeaac169fd8fdec851f1907e20a9b155898cb
[120] Fallback to legacy type only when event is trusted (upsuper著, ) https://github.com/whatwg/dom/commit/9d8e4ed93896c50b1cacfceca6f93c56337686d8
[121] Add legacyOutputDidListenersThrowFlag to event dispatch for IDB (annevk著, ) https://github.com/whatwg/dom/commit/56a4d6ba7a96af1331363f0780c3dac12ed6bfdb
[123] Use "legacyOutputDidListenersThrowFlag" DOM hook (inexorabletash著, ) https://github.com/w3c/IndexedDB/commit/214a1357f690640615ad5b395cf96ffc2de61da3
[124] Editorial: use Infra's return and continue concepts (annevk著, ) https://github.com/whatwg/dom/commit/16944b0faef3da894c825d7a154a7bf9a60ea8a4
[127] Clear event's target and relatedTarget when dispatch ends at a shadow… (TakayoshiKochi著, ) https://github.com/whatwg/dom/commit/9ada239e14fe7964577276ef9d8972069e665247
[131] Event.target should return null after dispatch is complete, when stopped at ShadowRoot · Issue #511 · whatwg/dom () https://github.com/whatwg/dom/issues/511
[132] Set event.target to null when dispatching finishes at ShadowRoot by TakayoshiKochi · Pull Request #513 · whatwg/dom () https://github.com/whatwg/dom/pull/513
[133] Editorial: add "add an event listener" hook (annevk著, ) https://github.com/whatwg/dom/commit/2bdabb15de8112d9783cf393a3d6c37911149f77
[134] Editorial: remove object argument from inner invoke (annevk著, ) https://github.com/whatwg/dom/commit/bf6ff4574b054ec7b3a1aae40cea99c09a1eec5f
[135] Editorial: remove object argument from inner invoke (annevk著, ) https://github.com/whatwg/dom/commit/bf6ff4574b054ec7b3a1aae40cea99c09a1eec5f
[136] "inner invoke" does not need to take object · Issue #618 · whatwg/dom () https://github.com/whatwg/dom/issues/618
[137] Editorial: remove object argument from inner invoke by annevk · Pull Request #619 · whatwg/dom () https://github.com/whatwg/dom/pull/619
[138] Editorial: create a concept for event's target (annevk著, ) https://github.com/whatwg/dom/commit/07c110c87b8e4b1f7ecae09727b859bb75b17a73
[139] Standardize window.event (miketaylr著, ) https://github.com/whatwg/dom/commit/c69d7c0fb8796de884652c517825122d12901ef5
[148] Standardize srcElement, returnValue, and window.event · Issue #334 · whatwg/dom () https://github.com/whatwg/dom/issues/334
[149] Avoid setting target to the Window object (annevk著, ) https://github.com/whatwg/dom/commit/0b04ae848b27f9eaf6f0bd17ecaff0bd7f833068
[150] Dispatch event always set the event.target to the global object after dispatch · Issue #697 · whatwg/dom () https://github.com/whatwg/dom/issues/697
[151] Avoid setting target to the Window object by annevk · Pull Request #698 · whatwg/dom () https://github.com/whatwg/dom/pull/698
isTrusted
属性の扱いが違っています。