禁用页面上的所有JavaScript事件 [英] disable all javascript events on page
问题描述
我试过 $(body *)。unbind()
和 .unbind (mouseover click)
和 .off()
和 .off(mouseover click)
none none。
我做错了什么?
也可以罚款,只是禁用所有的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 ;(< l; i ++){
for(var n = 0,c = km.length; n dom [i] ['on'+ km [n]] = function(e){
e = e || event;
e.preventDefault();
返回false;
}
}
}
var fr = frames;
for(var i = 0,l = fr.length; i< l; i ++){
// cancell frames events here;
}
}
I am trying to write a chrome extension that disables event listeners for all elements (mouseover, click, ...) I am not trying to rewrite noscript, this is just a setup step that i need.
I have tried $("body *).unbind()
and .unbind("mouseover click")
and .off()
and .off("mouseover click")
none worked.
What am i doing wrong?
PS: it would also be fine to just disable all javascript code (coming from the page itself) from running on the page and only allow my extension injected code
This is not a complete example, as I won't do all of your work for you, but might lead you in the right direction:
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事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!