gpt4 book ai didi

javascript - addEventListener ("beforeload") 缺少事件

转载 作者:行者123 更新时间:2023-11-28 13:50:12 25 4
gpt4 key购买 nike

我正在尝试制作一个简单的 Chrome 插件来删除域 x 中的每个事件。我研究过它并发现了“beforeload”事件监听器,这显然是像 adblock 这样的东西用来完全阻止广告加载的。我已将其实现到插件中,并添加了诸如 console.log("addon returned") 之类的内容,以确保它实际上加载了 javascript,但问题是,它只捕获了少数事件,例如一个包含 50 个事件的页面,它可能只捕获 1-2 个。它忽略了其他明显的事情。

抽搐.js

document.addEventListener("beforeload", function(event) {
event.preventDefault();
$(event.target).remove();
}, true);

list .json

...
"content_scripts": [ {
"js": [ "js/jquery.js", "js/twitch.js" ],
"css": [ "css/twitch.css"],
"matches": ["*://*/*"],
"run_at": "document_start",
"all_frames" : true
}],
...

有人有什么想法吗?

最佳答案

beforeload 对页面上的每个脚本、iframe、图像和样式表调用一次,而不是对每个事件(您是指元素吗?)。您是否期望其他元素引发此事件?

本文档,Blocking Unwanted Content ,提到一个要求:

To block content, your script must be run as a Start Script, so that it executes before the content is displayed.

所以检查一下。此外,您不需要 .remove() 行,只需调用 event.preventDefault() 即可停止资源的创建。

document.addEventListener( 'beforeload', function( event ) {
event.preventDefault();
}, true );

关于javascript - addEventListener ("beforeload") 缺少事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11386246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com