首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用页面上的所有javascript事件

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

Stack Overflow用户
提问于 2013-11-20 00:50:43
回答 3查看 4.6K关注 0票数 2

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

我试过$("body *).unbind().unbind("mouseover click").off().off("mouseover click")都没用。

我做错什么了?

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-20 01:28:20

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

代码语言:javascript
复制
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
  }
}
票数 3
EN

Stack Overflow用户

发布于 2013-11-20 01:04:34

票数 1
EN

Stack Overflow用户

发布于 2013-11-20 01:08:34

如果像您所说的那样,jQuery创建了一些事件,那么它将保留您可以解析的数据。您可以看到优秀的视觉事件是如何做到这一点的,它是一种更通用的解决方案(即Chrome扩展之外的解决方案)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20085316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档