我正在寻找迭代对象getEventListeners(obj)返回的方法。 这样,我就不需要特定的代码来迭代事件监听器类型,或者检查它们是否存在于checked元素上。 我的目标是从元素中删除一些事件侦听器。例如,删除所有与鼠标相关的内容,并保留其他内容。
由于
答案 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中可用,不确定您的用例是什么,但您可能希望使用不同的方法来获取事件侦听器。