EventTarget: dispatchEvent() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 Web Workers 中可用。

EventTargetdispatchEvent() 方法會將一個 Event 物件傳送到該物件,(同步地)按照正確的順序呼叫受影響的事件監聽器。手動使用 dispatchEvent() 派發的事件也同樣遵循常規事件處理規則(包括捕獲階段和冒泡階段)。

呼叫 dispatchEvent()觸發事件的最後一步。事件應該已經使用 Event() 建構函式建立並初始化。

注意: 呼叫此方法時,Event.target 屬性將被設定為當前的 EventTarget

與由瀏覽器觸發並非同步地透過 事件迴圈 呼叫事件處理程式的“原生”事件不同,dispatchEvent()同步地呼叫事件處理程式的。所有適用的事件處理程式都會被呼叫並返回,然後 dispatchEvent() 才會返回。

語法

js
dispatchEvent(event)

引數

event

要派發的 Event 物件。它的 Event.target 屬性將被設定為當前的 EventTarget

返回值

如果 event 是可取消的,並且至少有一個接收到 event 的事件處理程式呼叫了 Event.preventDefault(),則返回 false。否則返回 true

異常

InvalidStateError DomException

如果在事件初始化期間未指定事件型別,則丟擲此異常。

警告: 事件處理程式中丟擲的異常會被報告為未捕獲的異常。事件處理程式在巢狀的呼叫棧中執行;它們會阻塞呼叫者直到完成,但異常不會傳播到呼叫者。

示例

請參閱 建立和派發事件

規範

規範
DOM
# ref-for-dom-eventtarget-dispatchevent③

瀏覽器相容性

另見