EventTarget: dispatchEvent() 方法
注意:此功能在 Web Workers 中可用。
EventTarget 的 dispatchEvent() 方法会将一个 Event 对象发送到该对象,(同步地)按照正确的顺序调用受影响的事件监听器。手动使用 dispatchEvent() 派发的事件也同样遵循常规事件处理规则(包括捕获阶段和冒泡阶段)。
调用 dispatchEvent() 是触发事件的最后一步。事件应该已经使用 Event() 构造函数创建并初始化。
注意: 调用此方法时,Event.target 属性将被设置为当前的 EventTarget。
与由浏览器触发并异步地通过 事件循环 调用事件处理程序的“原生”事件不同,dispatchEvent() 是同步地调用事件处理程序的。所有适用的事件处理程序都会被调用并返回,然后 dispatchEvent() 才会返回。
语法
js
dispatchEvent(event)
参数
event-
要派发的
Event对象。它的Event.target属性将被设置为当前的EventTarget。
返回值
如果 event 是可取消的,并且至少有一个接收到 event 的事件处理程序调用了 Event.preventDefault(),则返回 false。否则返回 true。
异常
InvalidStateErrorDomException-
如果在事件初始化期间未指定事件类型,则抛出此异常。
警告: 事件处理程序中抛出的异常会被报告为未捕获的异常。事件处理程序在嵌套的调用栈中运行;它们会阻塞调用者直到完成,但异常不会传播到调用者。
示例
请参阅 创建和派发事件。
规范
| 规范 |
|---|
| DOM # ref-for-dom-eventtarget-dispatchevent③ |
浏览器兼容性
加载中…