javascript - 禁用页面上的所有 javascript 事件

标签 javascript google-chrome

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

我尝试过 $("body *).unbind().unbind("mouseover click").off() > 和 .off("鼠标悬停单击") 没有一个起作用。

我做错了什么?

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

最佳答案

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

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
  }
}

关于javascript - 禁用页面上的所有 javascript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085316/

相关文章:

javascript - React hook,发生Invalid hook call错误

javascript - 更改标题样式在 Chrome 中不起作用

Javascript - 添加到 String.prototype 的函数在 V8 中性能不佳?

javascript - Chrome 扩展程序 : Changing html of a chrome popup window

javascript - 一个html中有很多div

javascript - 如何在 Highcharts 中使用数组?

javascript - 如何只触发一次 vue 方法,而不是每次

jquery - 无法专注于标签

javascript - 对象作为 Firestore 中的查询参数

javascript - 使用 RSS 提要找出网站中是否发生了变化