firefox-addon - 损坏的 Firefox 附加组件
问题描述
我想创建一个 Firefox 插件,但它根本不起作用。我试图找到解决方案,但我还没有发现任何有用的东西。Firefox 版本为 94.0(64 位)。
插件的结构:
- 图标文件夹
- l16.png
- l32.png
- l48.png
- l128.png
- 背景.js
- 清单.json
清单.json
{
"manifest_version": 2,
"name": "Popup",
"version": "1.0",
"content_scripts": [{
"js": ["background.js"],
"matches": [ "*://example/aaa/*", "*://examp.aaa.bb.cc/*"],
"all_frames": true }],
"permissions": ["tabs", "http://*/*", "https://*/*"],
"icons": {
"16": "icons/l16.png",
"32": "icons/l32.png",
"48": "icons/l48.png",
"128": "icons/l128.png"}
}
背景.js
//background.js
const apps = [
['AAA', 'https://example/aaa/'],
['BBB', 'http://examp.aaa.bb.cc/']
]
browser.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
browser.tabs.query({ 'active': true, 'lastFocusedWindow': true, 'currentWindow': true },
(tabs) => {
let url = tabs[0].url;
const i = apps.findIndex(u => url.includes(u[1]));
if (i > -1 && !sessionStorage.getItem(url)) {
sessionStorage.setItem(url, url);
browser.tabs.update( tabs[0].id, { url: `http://popup.aaa.bb.cc?title=${apps[i][0]}`} );
}
});
})
我从这个文件夹和这两个文件创建了一个 zip,然后将其作为临时扩展名上传,因为当我尝试将其作为普通插件上传时,Firefox 说它已损坏。因此,临时扩展容器中上传的 add-n 会返回“错误:找不到配置文件目录。”。铬更简单。
解决方案
您的后台脚本需要与清单中的内容脚本分开。
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [{
"matches": ["*://example/aaa/*", "*://examp.aaa.bb.cc/*"],
"js": [
"content.js"
]
}],
推荐阅读
- survey - 在 Stack Overflow 网站内找到“2019 年开发者调查结果”调查的路径是什么?
- .net - 无法在 .Net 4.6.1 上使用 Log4Net 安装 Sentry
- exoplayer - 通过 Azure 媒体服务下载受 WideVine/FairPlay 保护的内容以供离线播放
- time-complexity - 优化的字谜函数的时间复杂度
- angular - 被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。使用 Solr 8.1.0 的 Angular 8 应用程序出错
- tcl - Tcl:将参数传递给类时评估变量值
- cmd - 虚拟环境未激活?
- reactjs - 在 Gatsby 项目中使用 SVG 文件作为 ReactComponent 的问题
- python - Python 嵌套 if
- c# - 何时设置 islargearch UWP