在运行时更改Firefox插件sdk toolbarbutton图标

时间:2012-02-13 11:39:15

标签: firefox firefox-addon firefox-addon-sdk

我正在使用toolbarbutton库,因为如果我重新启动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";

没有任何影响。图像似乎仅在构造工具栏按钮时使用。

还尝试使用不同的图标销毁并重新创建按钮,但这会导致恼人的闪烁。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

我做了一个快速测试,这应该按预期工作,所以我不确定你遇到了什么问题。以下是一些可以正常工作的示例代码:

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

您可以发布更多代码吗?问题必定在其他地方。