Firefox Nightly Android插件内容脚本仅弹窗后运行的修复咨询
解决方案
1. 修正Manifest中的Gecko版本要求
你的browser_specific_settings.gecko.strict_min_version设置为42.0,但Firefox从91.0版本才开始支持Manifest V3,过低的版本号会导致Android端扩展加载逻辑异常。修改为:
"browser_specific_settings": { "gecko": { "id": "amitbokodev@gmail.com", "strict_min_version": "91.0" } }
2. 显式指定Content Script注入时机
在content_scripts配置中添加"run_at": "document_start",确保脚本在页面加载初期就被注入,规避移动端的延迟问题:
"content_scripts": [{ "css": ["assets/css/content.css"], "js": ["assets/js/jquery_slim_mini.js","assets/js/content.js"], "matches": ["https://9gag.com/*"], "run_at": "document_start" }]
3. 通过Service Worker主动注入脚本(兜底方案)
如果上述方法无效,改用后台Service Worker监听页面加载事件,主动注入脚本:
步骤1:更新Manifest权限与后台脚本声明
"permissions": [ "storage", "tabs", "scripting" ], "background": { "service_worker": "background.js" }
步骤2:创建background.js添加注入逻辑
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { // 确认页面加载完成且为9GAG站点 if (changeInfo.status === 'complete' && tab.url?.startsWith('https://9gag.com/')) { // 注入JS文件 chrome.scripting.executeScript({ target: { tabId: tabId }, files: ['assets/js/jquery_slim_mini.js', 'assets/js/content.js'] }); // 注入CSS文件 chrome.scripting.insertCSS({ target: { tabId: tabId }, files: ['assets/css/content.css'] }); } });
额外检查项
- 确保Android版Firefox Nightly为最新版本,旧版本的MV3支持存在已知bug
- 测试前卸载旧扩展并重新加载修改后的版本,避免缓存干扰
内容的提问来源于stack exchange,提问作者AmitAM
相关产品推荐
相关产品推荐

