更改Firefox插件安装图标

fix*_*int 7 firefox-addon firefox-addon-sdk

我正在使用Add-on SDK开发Firefox附加组件.我更改了我的package.json文件,以包含32x32图标和64x64图标的条目.

{
    ...
    "icon": "icons/icon-32.png",
    "icon64": "icons/icon-64.png",
    ...
}
Run Code Online (Sandbox Code Playgroud)

此外,我在icons包目录cfx xpi内运行之前将icon-32.png和icon-64.png 放在我的包目录中的目录中.

图标正确地显示在插件管理器中Tools > Add-ons,但安装对话框仍然使用拼图图标.

我自己托管Firefox附加组件.

起初,我认为可能是因为我还没有签署xpi文件,但我注意到还有很多其他的附加组件没有签名但在安装对话框中仍然有正确的图标.

我也认为这可能是因为图标不是位于xpi文件中的正确位置,或者可能是附加SDK没有正确生成install.rdf,但我解压缩了xpi并发现了cfx已将图标放在根目录中并将其重命名为默认名称(icon.png和icon64.png),并省略了install.rdf中的文件名(将它们指向默认图标).

如何更改安装图标?

使用Firefox托管时是否只能更改安装图标?

Wla*_*ant 14

安装对话框不会从包中获取图标,而是使用网页提供的信息.你的网页需要使用InstallTrigger开始安装,沿着这些路线:

function install(link)
{
  params = {};
  params[link.getAttribute("addonName")] = {
    URL: link.href,
    IconURL: link.getAttribute("iconURL")
  };
  InstallTrigger.install(params);
}
Run Code Online (Sandbox Code Playgroud)

你的链接看起来像这样:

<a href="foo.xpi" addonName="Foo" iconURL="foo.png"
   onclick="install(this); return false;">
  Install
</a>
Run Code Online (Sandbox Code Playgroud)

请注意,它仍然必须是一个链接 - 如果用户禁用了JavaScript,install()则不会调用您的函数.用户只需按照链接进行操作,无论如何都会安装.

  • @ user198989:除了我刚刚修复的缺少的引号 - 是的,我确信它有效(只是尝试过). (2认同)