我正在尝试编写一个 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/