如何在 manifest.json Chrome 扩展中同时使用主题和内容脚本?

How to use BOTH theme and content-scripts in manifest.json Chrome Extension?

我正在尝试制作一个 chrome 主题,该主题既具有风格特征(在清单“主题”元素中)又具有内容脚本(在“内容脚本”元素中)。我遇到了一个奇怪的错误,当没有“主题”元素时,内容脚本只有 运行s。

我的内容-script.js只是-

console.log("content-script.js");

当我像这样格式化我的 manifest.json 文件而没有“主题”元素时它起作用了-

{
   "manifest_version": 2,
   "name": "Test",
   "version": "1.0",
   "content_scripts": [
      {
          "matches": ["<all_urls>"],
          "js": ["content-script.js"]
      }
   ]
}

但是当我添加一个空的主题元素时,我的内容脚本不会 运行-

{
   "manifest_version": 2,
   "name": "Test",
   "version": "1.0",
   "content_scripts": [
      {
          "matches": ["<all_urls>"],
          "js": ["content-script.js"]
      }
   ],
   "theme": {}
}

有谁知道为什么会这样,我该如何解决?

你不能。在 Chrome 中,themesextensions 是两个不同的东西。

主题 是一种特殊的扩展,它改变了浏览器的外观。主题像常规 扩展 一样打包,但它们不包含 JavaScript 或 HTML 代码。

这就是为什么当您在 manifest.json 中包含 “主题” 字段时,您的扩展不能 运行 任何内容脚本。

我建议您检查 Regular Extension Documentation and also the Theme Documentation 以了解它们之间的差异。

不过,对于 Firefox,有一个 theme API 可用。