Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox addon firefox扩展未显示在任何菜单中,但似乎已安装_Firefox Addon_Firefox Addon Sdk - Fatal编程技术网

Firefox addon firefox扩展未显示在任何菜单中,但似乎已安装

Firefox addon firefox扩展未显示在任何菜单中,但似乎已安装,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,我正在使用mozilla插件sdk和cfx工具构建firefox扩展 扩展仅显示一个切换按钮,该按钮通常出现在工具栏菜单中 使用以下命令启动扩展时,一切正常: $ cfx run 但是如果我生成一个像这样的xpi文件: $ cfx xpi 并尝试从该文件手动安装我的扩展名,即使firefox告诉我安装正常,我也无法在任何工具栏/菜单中看到它。但是,firefox模块列表中报告了该扩展 我在商店里发布了它,问题依然存在,无法从任何菜单访问它 我在想xpi一代会出什么问题,但我找不到什么 我还想

我正在使用mozilla插件sdk和cfx工具构建firefox扩展

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

使用以下命令启动扩展时,一切正常:

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

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

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

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

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

有什么想法吗

[更新]以下是我使用的代码

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});
}

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

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

享受吧

如果没有代码,此问题可能会偏离主题:寻求调试帮助的问题(“为什么此代码不能按我希望的方式工作?”)必须包括:•所需的行为,•特定的问题或错误,以及•在问题本身中重现此问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:,和。同意@Makyen,请提供一些代码,以便我们可以帮助您。请按照@Makyen所说的添加一些代码