在运行时更改Firefox插件sdk工具栏按钮图标

在运行时更改Firefox插件sdk工具栏按钮图标,firefox,firefox-addon,firefox-addon-sdk,Firefox,Firefox Addon,Firefox Addon Sdk,我使用的是工具栏按钮库,因为如果我重新启动Firefox,普通的小部件将不会存储它们的位置。 不幸的是,我想在运行时更改图标。使用我所做的小部件: widget.contentURL = "http://127.0.0.1:8082/static/icons/eth_16.png"; 使用工具栏按钮,我尝试: Toolbarbutton.image = "http://127.0.0.1:8082/static/icons/eth_16.png"; 没有任何效果。该图像似乎仅在构建工具栏按钮

我使用的是工具栏按钮库,因为如果我重新启动Firefox,普通的小部件将不会存储它们的位置。 不幸的是,我想在运行时更改图标。使用我所做的小部件:

widget.contentURL = "http://127.0.0.1:8082/static/icons/eth_16.png";
使用工具栏按钮,我尝试:

Toolbarbutton.image = "http://127.0.0.1:8082/static/icons/eth_16.png";
没有任何效果。该图像似乎仅在构建工具栏按钮时使用

还试图用不同的图标破坏和重新创建按钮,但这会导致恼人的闪烁


如果您有任何想法,我们将不胜感激。

我做了一个快速测试,测试结果应该与预期相符,因此我不确定您在这里遇到了什么问题。下面是一些工作正常的示例代码:

var toolbarbutton = require("toolbarbutton");
var timer = require("timer");

var TEST_ICON_M_URL = "http://www.mozilla.org/media/img/favicon.png";
var TEST_ICON_G_URL = "http://www.google.com//images/google_favicon_128.png";
console.log("TEST_ICON_URL", TEST_ICON_M_URL);

var options = {
  id: "test-tbb",
  label: "TEST BUTTON",
  toolbarID: "nav-bar",
  image: TEST_ICON_M_URL,
  forceMove: true
};

var tbb = toolbarbutton.ToolbarButton(options);
tbb.moveTo(options);

timer.setTimeout(function () {
  tbb.image = TEST_ICON_G_URL;
  console.log("switched", TEST_ICON_G_URL);
}, 5 * 1000); // 5 seconds

还有更多的代码可以发布吗?问题一定出在其他地方。

您使用的是哪个工具栏按钮库?我使用的是Eric Volds库。这可能是图书馆的一个限制-你考虑过直接联系Erik吗?