--- title: EventTarget.dispatchEvent() slug: Web/API/EventTarget/dispatchEvent translation_of: Web/API/EventTarget/dispatchEvent ---

{{APIRef("DOM Events")}}

於此 {{domxref("EventTarget")}} 物件上觸發特定的 {{domxref("Event")}} 物件實體,相當於依照註冊的順序呼叫它的 {{domxref("EventListener")}}。一般事件處理規則(包含捕捉(capturing)和可選的冒泡(bubbling)階段)也適用於用 dispatchEvent() 手動觸發事件。

語法

cancelled = !target.dispatchEvent(event)

參數

回傳值

若遇到以下 3 種情況,dispatchEvent 會拋出錯誤資訊--  UNSPECIFIED_EVENT_TYPE_ERR :

  1. 執行 dispatchEvent 前並未藉由初始化事件指定事件類型
  2. 事件類型為 null
  3. 事件類型是個空白字串。

這些異常,處理器會報告「異常未捕獲(uncaught exceptions)」;

事件處理器(event handlers)會在一群呼叫堆(nested callstack)上執行:事件的呼叫方(caller)會先由處理器會阻擋暫停執行,直到事件完成才繼續執行,但是要注意的是,事件若發生異常並不會傳回給呼叫方。

注意

dispatchEvent 是「建立→初始化→觸發」的最後一步驟。這些步驟是用來觸發事件,讓事件完成。事件有多種建立方式,例如用 {{domxref("​document.createEvent")}} 並用 initEvent 或其他特殊 methods ,像是 initMouseEventinitUIEvent 來初始化。

詳請可參考《{{domxref("Event")}}》。

範例

請參閱《建立或觸發事件》。

規格

Specification Status Comment
{{SpecName('DOM WHATWG', '#dom-eventtarget-dispatchevent', 'EventTarget.dispatchEvent()')}} {{ Spec2('DOM WHATWG') }}  
{{SpecName('DOM4', '#dom-eventtarget-dispatchevent', 'EventTarget.dispatchEvent()')}} {{ Spec2('DOM4') }}  
{{SpecName('DOM2 Events', '#Events-EventTarget-dispatchEvent', 'EventTarget.dispatchEvent()')}} {{ Spec2('DOM2 Events') }} 初始定義

瀏覽器支援度

{{Compat("api.EventTarget.dispatchEvent")}}