首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GeckoView android中阻止特定域的图像

在GeckoView android中阻止特定域的图像
EN

Stack Overflow用户
提问于 2022-02-21 11:38:09
回答 1查看 134关注 0票数 0

如何阻止GeckoView中特定域的图像加载?我试着在GeckoView中的webview中搜索像GeckoView这样的赤道方法,但没有成功。我发现很少有像这样的链接。我们可以通过在javaScript中注入GeckoView来阻止图像加载吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-22 16:38:04

您可以使用installBuiltIn注册一个系统installBuiltIn,该系统使用webRequest.onBeforeRequest阻止从给定域加载图像,实际上也可以使用任何其他条件。

示例:

/assets/下为您的扩展名创建一个文件夹,例如/assets/block-images,并添加一个manifest.jsonbackground.js文件,如下所示:

manifest.json

代码语言:javascript
复制
{
  "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"]
  }
}

background.js

代码语言:javascript
复制
"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安装扩展。

代码语言:javascript
复制
  runtime
      .getWebExtensionController()
      .ensureBuiltIn(
          "resource://android/assets/block-images/",
          "block-images@example.com");

在此之后,在GeckoView中加载的任何页面都将阻止图像到mozilla.org,就像background.js文件中定义的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71205677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档