可能与以下相关但不同:
firefox插件图标不显示和firefox扩展不显示图标。
虽然这些问题围绕着 API 用户需要使用 self.data.url( './icon-16.png' ) 并将图像从插件的根目录放在 './data/' 目录中,但我已经这样做了,所以它可能是 API 编码器的menuitem模块中的错误(对我来说看起来不错),或者 API 本身,或者其他一些滥用(我或其他人)或冲突。
我已经得到了要显示的 menuitem 文本标签,并且关联的 onCommand 处理程序可以工作。我已经使用 ActionButton 通过 self.data.url() 加载图标,所以我知道可以找到图标。这些相同的图像和功能在 menuitem 模块代码中失败。我尝试在菜单栏的文件和工具菜单下添加项目。我尝试修改 menuitem 模块的 index.js 文件。
在我的插件 index.js 中,我尝试了各种选项:
// for reference, all shown at once, but tried individually
image: self.data.url( "./icon-16.png" ),
image: self.data.url( "icon-16.png" ),
image: "./icon-16.png",
image: "icon-16.png",
在 menuitem 的 index.js 中,我尝试过:
// using self.data.url in my index.js, despite example not showing this
menuitem.style.listStyleImage = "url('" + options.image + "')";
menuitem.setAttribute('image', options.image );
根据某些 Mozilla 安全策略,菜单栏的菜单项的图标是否只是被浏览器禁止而控制台中没有警告?是否有浏览器设置或覆盖?它甚至可以与 XUL 叠加层一起使用吗?
我只是尝试直接从各种代码示例中使用 menuitem 插件(修改为删除其他选项)。
require("menuitem").Menuitem({
id: "clickme",
//menuid: "menu_FilePopup",
//insertbefore: "menu_FileQuitItem",
menuid: "menu_ToolsPopup",
insertbefore: "menu_pageInfo"
label: "Click to visit Mozilla!",
image: self.data.url( "./icon-16.png" ),
onCommand: handleClick,
});
使用 jpm run -b (浏览器二进制文件的绝对路径)测试结果,每次都会创建一个新的默认空配置文件。