首页 > 解决方案 > 损坏的 Firefox 附加组件

问题描述

我想创建一个 Firefox 插件,但它根本不起作用。我试图找到解决方案,但我还没有发现任何有用的东西。Firefox 版本为 94.0(64 位)。

插件的结构:

清单.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 会返回“错误:找不到配置文件目录。”。铬更简单。

标签: firefox-addon

解决方案


您的后台脚本需要与清单中的内容脚本分开

"background": {
  "scripts": [
    "background.js"
  ]
},
"content_scripts": [{
  "matches": ["*://example/aaa/*", "*://examp.aaa.bb.cc/*"],
  "js": [
    "content.js"
  ]
}],

推荐阅读