禁用页面上的所有javascript事件

时间:2013-11-20 00:50:43

标签: javascript google-chrome

我正在尝试编写一个chrome扩展,禁用所有元素的事件侦听器(mouseover,click,...)我不是要重写noscript,这只是我需要的设置步骤。

我尝试了$("body *).unbind().unbind("mouseover click")以及.off().off("mouseover click") 没人工作。

我做错了什么?

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

也没关系

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

答案 2 :(得分:1)

如果你说jQuery所做的事件,它会保留你可以解析的数据。您可以看到优秀的Visual Events如何做到这一点,作为一种更通用的解决方案(即在Chrome扩展程序之外)。