为什么我的浏览器扩展在页面加载时不执行任何操作(除了在工具箱中)?

Why does my browser extension do nothing on page load (except in the toolbox)?

我一直在尝试做一个 Firefox 扩展。我在用户交互(如浏览器操作)后成功地做了一些事情。但我希望我的扩展程序在没有用户交互的情况下做一些事情。但无论我做什么,我都无法在页面加载时发生任何事情。这是我的超级简化代码:

manifest.json

{
  "name": "Test",
  "version": "0.1",
  "manifest_version": 2,
  "background": {
    "scripts": ["test.js"]
  }
}

test.js

document.addEventListener("DOMContentLoaded", init);

function init() {
  document.body.innerHTML = "Hello world!";
}

我在这里做错了什么?它在工具箱中有效,但在其他任何地方都无效!

我也试过像这样添加主机权限:

"permissions": [
    "*://*.facebook.com/*"
  ],

试试这个:

manifest.json

{
  "name": "Test",
  "version": "0.1",
  "manifest_version": 2,
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["webNavigation", "*://*.facebook.com/*"]
}

background.js

browser.webNavigation.onDOMContentLoaded.addListener(handleOnDOMContentLoaded, {
  url: [{ hostEquals: 'www.facebook.com' }],
});

function handleOnDOMContentLoaded({ tabId }) {
  browser.tabs.executeScript(tabId, { file: 'test.js' });
}

test.js

document.body.innerHTML = 'Hello world!';