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
相关产品推荐
相关产品推荐

