Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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_Google Chrome - Fatal编程技术网

禁用页面上的所有javascript事件

禁用页面上的所有javascript事件,javascript,google-chrome,Javascript,Google Chrome,我正在尝试编写一个chrome扩展,该扩展将禁用所有元素的事件侦听器(鼠标悬停,单击…)。我没有尝试重写noscript,这只是我需要的一个设置步骤 我已经尝试了$(“body*).unbind()和.unbind(“鼠标点击”)和.off()和.off(“鼠标点击”) 没有一个奏效 我做错了什么 PS:也可以禁用页面上运行的所有javascript代码(来自页面本身),只允许我的扩展注入代码.如果您有jQuery生成的事件,它会保留您可以解析的数据。您可以看到,作为一种更通用的解决方案(即,在

我正在尝试编写一个chrome扩展,该扩展将禁用所有元素的事件侦听器(鼠标悬停,单击…)。我没有尝试重写noscript,这只是我需要的一个设置步骤

我已经尝试了
$(“body*).unbind()
.unbind(“鼠标点击”)
.off()
.off(“鼠标点击”)
没有一个奏效

我做错了什么


PS:也可以禁用页面上运行的所有javascript代码(来自页面本身),只允许我的扩展注入代码.

如果您有jQuery生成的事件,它会保留您可以解析的数据。您可以看到,作为一种更通用的解决方案(即,在Chrome扩展之外),优秀者是如何做到这一点的。

这不是一个完整的示例,因为我不会为您完成所有的工作,但可能会引导您朝着正确的方向前进:

function preventAll(){
  var dom = document.getElementsByTagName('*');
  var km = ['click', 'dblclick', 'mousedown', 'mousemove', 'mouseover', 'mouseout', 'mouseup', 'mouseenter', 'mouseleave', 'keydown', 'keypress', 'keyup'];
  for(var i=0,l=dom.length; i<l; i++){
    for(var n=0,c=km.length; n<c; n++){
      dom[i]['on'+km[n]] = function(e){
        e = e || event;
        e.preventDefault();
        return false;
      }
    }
  }
  var fr = frames;
  for(var i=0,l=fr.length; i<l; i++){
    // cancell frames events here
  }
}
函数preventAll(){
var dom=document.getElementsByTagName('*');
var km=['click','dblclick','mousedown','mousemove','mouseover','mouseout','mouseup','mouseenter','mouseleave','keydown','keypress','keypup'];

对于(var i=0,l=dom.length;iYou无法使用jQuery事件处理禁用JavaScript事件侦听器…它们是两个完全不同的东西。我相信页面上的侦听器也是使用jQuery创建的。但是我想删除所有事件侦听器。它似乎如您所期望的那样工作…您确定事件不会在代码之后绑定吗?以及此时,您的代码是否正在实际运行?标准的
.removeEventListener
采用函数侦听器类型(单击)和侦听事件的原始函数。如果这两个函数都不可用,则无法删除纯文本中设置的事件javascript@Ian:由于我正在编写扩展,我可以选择何时执行代码(当我点击扩展图标时)所以我的代码应该在之后运行。我很确定它正在运行:)谢谢!但是什么是框架呢?
frame
是一个
frame
iframe
。要查看DOM事件的完整列表,请查看这里。还有很多。另外,在处理
表单
对象时,您需要循环该对象和
元素
对象,这是每个
表单
属性的属性。就像我说的,我会帮你的,但我不会帮你的。祝你好运!