EventTarget:dispatchEvent() 方法

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

dispatchEvent() 方法是 EventTarget 的一个方法,它将一个 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③

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。

另请参阅