Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript删除附加到键的所有事件侦听器_Javascript_Html_Event Handling - Fatal编程技术网

使用Javascript删除附加到键的所有事件侦听器

使用Javascript删除附加到键的所有事件侦听器,javascript,html,event-handling,Javascript,Html,Event Handling,我想使用javascript删除当前连接到键盘键的所有事件侦听器。我知道HTML元素可以通过克隆和替换该特定元素来实现,但如何为键实现这一点? 例如,在中按Q将打开下拉列表,因此如何防止它? 我尝试过但没有成功的事情: onkeydown = function(e){ if(e.key == 'q'){ e.preventDefault() e.stopImmediatePropagation() e.stopPropagation() } } onkeyup

我想使用javascript删除当前连接到键盘键的所有事件侦听器。我知道HTML元素可以通过克隆和替换该特定元素来实现,但如何为键实现这一点?
例如,在中按
Q
将打开下拉列表,因此如何防止它?
我尝试过但没有成功的事情:

onkeydown = function(e){
  if(e.key == 'q'){
    e.preventDefault()
    e.stopImmediatePropagation()
    e.stopPropagation()
  }
}

onkeyup = function(e){
  if(e.key == 'q'){
    e.preventDefault()
    e.stopImmediatePropagation()
    e.stopPropagation()
  }
}

通过在捕获阶段执行事件处理程序,即将
useCapture
设置为true,找到了解决方法

window.addEventListener('keyup',函数(e){
如果(e.key='q'){
e、 停止即时复制()
}
},对)//使用捕获

如果有更好的解决方案,请发布。

通过在捕获阶段执行事件处理程序,即将
useCapture
设置为true,找到了解决方法

window.addEventListener('keyup',函数(e){
如果(e.key='q'){
e、 停止即时复制()
}
},对)//使用捕获

如果有更好的解决方案,请发布。

您不能将事件附加到键盘键,事件总是附加到DOM元素(或附加到
文档
窗口
)。请说明您最初是如何将“事件添加到关键点”的。或者,如果您正在编程一个扩展,那么我们需要知道目标页面是如何附加事件的。我调试了,它是一个附加到documentand
document的keyup事件。onkeyup=null
不起作用,那么您必须尝试删除侦听器。如果它是一个匿名函数,您就无能为力,因为如果不引用实际函数,就无法删除附加了
addEventListener
的侦听器。另外,
onxxx
监听器是元素的属性,它们与使用
addEventListener
添加的监听器(或内联监听器,如果有关系的话)不连接。如果您无法获取该函数的引用,那么您就倒霉了,因为可能不实用,甚至不可能在没有所述侦听器的情况下重建整个文档。我通过在
addEventListener()
中设置
useCapture
标志将其删除。您无法将事件附加到键盘的键,事件始终附加到DOM元素(或
文档
窗口
)。请说明您最初是如何将“事件添加到关键点”的。或者,如果您正在编程一个扩展,那么我们需要知道目标页面是如何附加事件的。我调试了,它是一个附加到documentand
document的keyup事件。onkeyup=null
不起作用,那么您必须尝试删除侦听器。如果它是一个匿名函数,您就无能为力,因为如果不引用实际函数,就无法删除附加了
addEventListener
的侦听器。另外,
onxxx
监听器是元素的属性,它们与使用
addEventListener
添加的监听器(或内联监听器,如果有关系的话)不连接。如果您无法获得对该函数的引用,那么您就倒霉了,因为这可能不实用,甚至不可能在没有所述侦听器的情况下重建整个文档。我通过在
addEventListener()
中设置
useCapture
标志将其删除