You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firefox扩展无法在about:config等设置页面运行脚本求助

Firefox扩展在about:preferences页面注入脚本的解决方案

Firefox的内置特权页面(如about:preferences、about:config)受安全策略限制,普通content_scripts无法通过matches字段直接注入脚本,这就是你配置matches: ["about:preferences"]无效的原因。要实现需求,需通过后台脚本主动注入的方式,步骤如下:

1. 修改manifest.json

添加后台脚本声明、资源可访问配置及必要权限:

{
  "manifest_version": 2,
  "version": "1.0",
  "name": "Test",
  "background": {
    "scripts": ["background.js"]
  },
  "web_accessible_resources": ["main.js"],
  "permissions": ["tabs", "about:preferences"]
}

2. 创建background.js后台脚本

监听标签页加载完成事件,当页面为about:preferences时主动注入脚本:

// 监听标签页更新事件
browser.tabs.onUpdated.addListener((tabId, changeInfo, tab) => {
  // 确保页面加载完成且目标是about:preferences
  if (changeInfo.status === 'complete' && tab.url === 'about:preferences') {
    // 注入main.js脚本
    browser.tabs.executeScript(tabId, {
      file: 'main.js'
    }).catch(error => {
      console.error('脚本注入失败:', error);
    });
  }
});

3. 保留原main.js脚本

你的main.js无需修改,仍可正常使用:

alert("The test extension is up and running.")

注意事项

  • 若注入失败,可检查about:config中的extensions.webextensions.restrictedDomains项,确认about:preferences不在该列表内(若存在则移除)。
  • 该方案基于Manifest V2,若后续升级到V3,可改用browser.scripting.executeScriptAPI,逻辑类似。

内容的提问来源于stack exchange,提问作者user20993186

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 01:45:07