迭代getEventListeners()返回对象

时间:2017-10-27 12:08:26

标签: javascript javascript-events

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

由于

2 个答案:

答案 0 :(得分:6)

getEventListeners(obj)只是Google Chrome specific Command Line Tool feature。这意味着您只能在手动键入控制台时在Chrome开发工具中使用此功能。您不能在实际的JavaScript源代码中使用此方法。

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

答案 1 :(得分:3)

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

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

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