clo*_*018 0 javascript jquery google-chrome google-chrome-extension
我正在尝试制作一个简单的Chrome插件,以删除域x中的每个事件。我调查了一下,发现了有关“ beforeload”事件侦听器的信息,这显然是adblock之类的东西用来完全阻止广告加载。我已经在插件中实现了这一点,并添加了诸如console.log(“ addon load”)之类的内容,以确保它实际上正在加载javascript,但是问题是,它仅捕获了少数事件,例如在50个事件,仅捕获1-2个。它错过了明显的其他事情。
twitch.js
document.addEventListener("beforeload", function(event) {
event.preventDefault();
$(event.target).remove();
}, true);
Run Code Online (Sandbox Code Playgroud)
manifest.json
...
"content_scripts": [ {
"js": [ "js/jquery.js", "js/twitch.js" ],
"css": [ "css/twitch.css"],
"matches": ["*://*/*"],
"run_at": "document_start",
"all_frames" : true
}],
...
Run Code Online (Sandbox Code Playgroud)
有人有什么想法吗?
beforeload对于网页上的每个脚本,iframe,图片和样式表,仅调用一次,而不是针对每个事件调用一次(您是说元素吗?)。您是否期望其他因素来引发这一事件?
本文档“ 阻止不需要的内容 ”提到了一项要求:
要阻止内容,您的脚本必须作为启动脚本运行,以便在内容显示之前执行。
所以检查一下。另外,您不需要该.remove()行,只需调用event.preventDefault()将停止资源的创建。
document.addEventListener( 'beforeload', function( event ) {
event.preventDefault();
}, true );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6461 次 |
| 最近记录: |