迭代getEventListeners()返回对象

IAm*_*Fry 2 javascript javascript-events

我正在寻找迭代对象getEventListeners(obj)返回的方法.这样,我就不需要特定的代码来迭代事件监听器类型,或者检查它们是否存在于checked元素上.我的目标是从元素中删除一些事件侦听器.例如,删除所有鼠标相关的,并保留其他.

谢谢

glu*_*ngo 6

getEventListeners(obj)仅是Google Chrome特定的命令行工具功能.这意味着您只能在手动键入控制台时在Chrome开发工具中使用此功能.您不能在实际的JavaScript源代码中使用此方法.

如果你想实现你所描述的,AFAIK你必须手动跟踪你的听众.请查看此答案以获取进一步说明


Mar*_*mek 5

getEventListeners() 将返回简单的 JS 对象,您可以像这样迭代对象:

var listeners = window.getEventListeners(document.body);
Object.keys(listeners).forEach(event => {
    console.log(event, listeners[event]);
});
Run Code Online (Sandbox Code Playgroud)

但看起来该getEventListeners方法仅在 chrome 中可用,不确定您的用例是什么,但您可能希望使用不同的方法来获取事件侦听器。

  • 谢谢,但我没有意识到这是特定于 chrome 的 :( 但这是问题的答案,所以谢谢 (2认同)
  • getEventListeners 不是 JavaScript 函数(它仅适用于开发工具命令行) (2认同)