我正在寻找一种方法来迭代对象
getEventListeners(obj)
返回。
这样,我就不需要特定的代码来迭代事件侦听器类型,或者检查它们是否存在于被检查的元素上。
我的目标是从一个元素中移除一些事件监听器。例如删除所有鼠标相关的,并保留其他的。
getEventListeners(obj)
只是 Google Chrome 特定的命令行工具功能。这意味着您只能在手动输入控制台时在 Chrome 开发工具中使用此功能。您不能在实际的 JavaScript 源代码中使用此方法。
如果你想实现你所描述的,AFAIK 你必须手动跟踪你的听众。检查这个答案以获得进一步的说明。
getEventListeners()
将返回简单的 JS 对象,您可以像这样迭代对象:
var listeners = window.getEventListeners(document.body);
Object.keys(listeners).forEach(event => {
console.log(event, listeners[event]);
});
但是看起来
getEventListeners
方法只能在 chrome 中使用,并且只能在 DevTools 中手动输入。