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 的浏览器中加载。