部分第三方插件会将eventListener
附加到网站中。如何在不知道附加的函数的情况下删除eventListener。
我引用此removeEventListener但我无法获得任何移除此信息的线索。
例如:getEventListeners(window)
显示附加的事件。但是,当我尝试使用window.removeEventListener("eventname")
删除事件时,如果不知道该功能,则无法正常工作。
请帮助,提前致谢。
答案 0 :(得分:15)
getEventListeners(window)
将返回事件地图及其注册的事件监听器。
因此,对于DOMContentLoaded
事件,您可以拥有许多事件侦听器。如果您知道要删除的侦听器的索引(或者只存在一个),则可以执行以下操作:
var eventlistener = getEventListeners(window)["DOMContentLoaded"][index];
window.removeEventListener("DOMContentLoaded",
eventlistener.listener,
eventlistener.useCapture);
答案 1 :(得分:7)
不幸的是,你不能这样做。您需要引用事件处理函数,以便removeEventListener
删除它。
如果您无法获得该引用,则唯一的选择是完全替换Node
。