如何从该站点删除事件监听器?

时间:2019-07-18 03:48:26

标签: javascript html

我想知道如何禁用副本from this site

我尝试过,但是没用:

document.body.removeEventListener("copy", this.Window);

1 个答案:

答案 0 :(得分:0)

Chrome具有getEventListeners,您可以通过EventTarget并返回一个对象,该对象具有每种类型的侦听器的属性,并带有一组侦听器。换句话说,如果某个元素上有clickmousedown个侦听器,则getEventListeners(someElement)返回

{
  click: [{...}],     // array of click listeners
  mousedown: [{...}], // array of mousedown listeners
}

数组中的每个条目都有

listener: ƒ (),   // the listener function
once: false,      // true or false if once was passed in
passive: false,   // true or false if the listeners is passive
type: "click",    // the type of listeners (which is kind of redundant)
useCapture: true, // true or false if use capture was passed in

According to MDN页面上的removeEventListener,仅传递类型,侦听器函数和useCapture来删除事件是很重要的。

因此,这将从JavaScript控制台中删除附加到window的副本侦听器

getEventListeners(window).copy.forEach(l => {
  window.removeEventListener(l.type, l.listener, l.useCapture);
});

您还可以在devtools中删除事件监听器

enter image description here