如何阻止GeckoView中特定域的图像加载?我尝试setLoadsImagesAutomatically
从 GeckoView 中的 webview 中搜索 equitant 方法,但没有运气。我发现很少有这样的链接和这个。我们可以通过在 GeckoView 中注入 javaScript 来阻止图像加载吗?
问问题
49 次
1 回答
1
您可以注册一个系统 WebExtension installBuiltIn
,使用它webRequest.onBeforeRequest
来阻止从给定域或任何其他条件加载图像。
例子:
为您的扩展程序创建一个文件夹/assets/
,例如/assets/block-images
并添加一个manifest.json
和background.js
文件,如下所示:
清单.json
{
"manifest_version": 2,
"name": "block-images",
"version": "1.0",
"description": "Block images from mozilla.org",
"browser_specific_settings": {
"gecko": {
"id": "block-images@example.com"
}
},
"permissions": [
"*://*.mozilla.org/*",
"webRequest",
"webRequestBlocking"
],
"background": {
"scripts": ["background.js"]
}
}
背景.js
"use strict";
function listener(details) {
// blocks all images from twitter.com
return {cancel: true};
}
browser.webRequest.onBeforeRequest.addListener(
listener,
{urls: ["*://*.mozilla.org/*"], types: ["image"]},
["blocking"]
);
然后,您可以在启动时使用以下命令安装扩展ensureBuiltIn
:
runtime
.getWebExtensionController()
.ensureBuiltIn(
"resource://android/assets/block-images/",
"block-images@example.com");
之后,您在 GeckoView 中加载的任何页面都会按照文件mozilla.org
中的定义阻止图像background.js
。
于 2022-02-22T16:38:04.803 回答