【问题标题】:firefox extension not showing up in any menu but seems to be installedFirefox 扩展程序未显示在任何菜单中,但似乎已安装
【发布时间】:2015-06-28 21:08:51
【问题描述】:

我正在使用 mozilla-addon-sdk 和 cfx 工具来构建一个 firefox 扩展。

扩展只显示一个切换按钮,通常出现在工具栏菜单中。

当我使用此命令启动扩展时,一切正常:

$ cfx run

但是如果我生成一个这样的 xpi 文件:

$ cfx xpi

并尝试从此文件手动安装我的扩展程序,即使 firefox 告诉我安装正常,我也无法在任何工具栏/菜单中看到它。但是,扩展名会在 firefox 模块列表中报告。

我在商店发布了它,但问题仍然存在,无法从任何菜单访问它。

我在想 xpi 一代出了什么问题,但我找不到。

我还想也许我应该添加一些代码来自动将切换按钮放在工具栏中的某个位置,但我找不到任何解决我的问题的方法。即使我的扩展程序应该用一些额外的代码将自己放在工具栏中,为什么从 cfx 运行时它会工作呢?

有什么想法吗?

[update] 这是我使用的代码。

manifest.json:

{
  "name": "firefox-extension",
  "title": "...",
  "id": "...",
  "description": "...",
  "icon": "data/my-icon.png",
  "author": "...",
  "license": "MPL 2.0",
  "version": "0.1"
}

main.js:

var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");
var tabs = require("sdk/tabs");

var button = ToggleButton({
 id: "extension-button",
 label: "extension",
 icon: {
   "48": "./my-icon.png"
 },
 onChange: handleChange
});

function handleChange(state) {
 if (state.checked) {
   var panel = panels.Panel({
     contentURL: self.data.url("http://my_url"),
     onHide: handleHide,
     width: 600,
     height: 600
   });

   panel.show({
     position: button
   });
 }
}

function handleHide() {
 button.state('window', {checked: false});
}

【问题讨论】:

  • 没有代码,这个问题可能跑题了:寻求调试帮助的问题(“为什么这段代码不能按我想要的方式工作?”)必须包括: •期望的行为, •特定问题或错误和 •在问题本身中重现它所需的最短代码。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example、What topics can I ask about here? 和 How to Ask。
  • 同意@Makyen,提供一些代码以便我们为您提供帮助。
  • 请按照@Makyen的说法添加一些代码

标签: firefox-addon firefox-addon-sdk


【解决方案1】:

您需要为按钮指定 16 和 32 的图标大小:

  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "48": "./icon-48.png"
  },

享受吧!

【讨论】:

    猜你喜欢
    • 2015-01-17
    • 1970-01-01
    • 1970-01-01
    • 2022-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 2018-05-22
    相关资源
    最近更新 更多