EventTarget方法:dispatchEvent()
在指定的EventTarget上调度Event,(同步)以适当的顺序调用受影响的EventListener。正常事件处理规则(包括捕获和可选的冒泡阶段)也适用于使用dispatchEvent()手动调度的事件。
语法
cancelled = !target.dispatchEvent(event)
参数
- event:是要发送的Event对象。
- target:用于初始化Event.target并确定要调用的事件侦听器。
返回值
- 返回值是false如果event可取消并且处理此事件的事件处理程序中至少有一个名为Event.preventDefault()的事件处理程序,则返回值为false,否则它会返回true。
如果在调用方法之前初始化事件未指定事件的类型,或者事件的类型为null或者为空字符串,则 dispatchEvent方法将抛出UNSPECIFIED_EVENT_TYPE_ERRnull。事件处理程序抛出的异常被报告为未捕获的异常;事件处理程序在嵌套的调用栈上运行:它们阻塞调用者直到它们完成,但异常不会传播给调用者。
笔记
与由DOM触发并通过事件循环异步调用事件处理程序的“本机”事件不同,dispatchEvent同步调用事件处理程序。所有适用的事件处理程序将在代码继续调用dispatchEvent之后执行并返回。
dispatchEvent是create-init-dispatch流程的最后一步,用于将事件分派到实现的事件模型中。可以使用Event构造函数创建事件。
示例
请参阅创建和触发事件。
规范
规范 | 状态 | 注释 |
---|---|---|
DOM
该规范中“EventTarget.dispatchEvent()”的定义。 |
Living Standard
|
DOM 2 Events规范中的初始定义。 |
浏览器兼容性
通过此快速调查来帮助我们改进浏览器兼容性表
电脑端 | 移动端 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome
|
Edge
|
Firefox
|
Internet Explorer
|
Opera
|
Safari
|
Android webview | 适用于Android的Chrome | Edge Mobile | 适用于Android的Firefox | 适用于Android的Opera | iOS Safari
|
|
基本支持 | 支持:4 | 支持:12 | 支持:2 | 支持:9 | 支持:9 | 支持:3.2 | 支持:4 | 支持:18 | 支持 | 支持:4 | 支持 | 支持 |