首页 > 解决方案 > 使用 Firefox 时,内容脚本模式“*://mail.google.com/*”与 gmail 不匹配

问题描述

我有一个为 chrome 编写的扩展。我最近决定要将它移植到 Firefox,我很惊讶有多少东西开箱即用,根本没有任何变化。但是,让我感到困惑的一件事是,由于某种原因,我的gmail.js内容脚本没有被加载。这是我的内容脚本:

{
  "name": "Copy Machine",
  "description": "Copies text more better",
  "version": "0.6",
  "permissions": ["contextMenus", "tabs"],
  "icons": { 
    "16": "icon_16.png",
    "32": "icon_32.png"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "manifest_version": 2,
  "content_scripts": [
        {
          "matches": [
              "*://mail.google.com/*"
          ],
          "js": ["gmail.js"],
          "run_at": "document_idle"
        },
        {
          "matches": [
              "<all_urls>"
          ],
          "js": ["generic.js"],
          "run_at": "document_idle"
        }
    ]
}

我的 gmail.js 内容脚本的第一行是: console.log("GMAIL SCRIPT IS RUNNING");

我的 generic.js 内容脚本的第一行是: console.log("GENERIC SCRIPT IS RUNNING");

当我在 Firefox 中打开我的 gmail 帐户时,在控制台中我看到“通用脚本正在运行”,但没有看到“GMAIL 脚本正在运行”。

使用谷歌浏览器,这可以按我的预期工作,但由于某种原因,URL 模式不匹配。有什么我想念的吗?谢谢。

标签: google-chrome-extensionfirefox-addon-webextensions

解决方案


所以我最终添加"*://mail.google.com/*"permissions清单文件中,这让事情按我预期的方式工作。然后我不得不用不可用的 api 修复一些其他错误,这就是我应该开始的:

https://extensionworkshop.com/documentation/develop/porting-a-google-chrome-extension/

然后我回去提交错误报告,当我删除"*://mail.google.com/*"它时它会继续工作。所以也许有一些奇怪的循环依赖发生了?我不确定。


推荐阅读