javascript - 触发任何事件类型,无论它如何附加到元素
问题描述
在发现元素上没有change
方法会触发change
事件,就像click
元素上的方法会触发click
事件一样,我现在正在寻找一种方法来触发事件,就好像事件已经实际执行一样. 这意味着已设置为通过这些方式处理事件的事件处理程序必须执行:
- 使用 HTML 属性(例如
onclick
,onchange
, )与元素关联的处理程序onmousedown
。 on*
通过设置方法(即onclick
、onchange
等)附加到对象的处理程序。- 使用 .附加到对象的处理程序
addEventListener
。
在寻找这个问题的答案时,我确实出现了dispatchEvent
and initEvent
,有时会结合使用,但是这些方法中的任何一个的文档都说它们已被弃用;不知道有没有更新的替代品。此外,此解决方案应该是跨浏览器的。
如果dispatchEvent
/initEvent
是唯一的解决方案,那么我将使用它,但我想知道为什么人们建议它,即使它已“弃用”。如果我正在编写 DOM 标准,那么我会让它看起来像Element.prototype.doEvent(eventTypeName)
.