2012-02-13 58 views
1

我正在使用toolbarbutton库,因为如果我重新启动Firefox,正常的小部件将不会存储它们的位置。 不幸的是我想在运行时改变图标。随着小部件我所做的:在运行时更改Firefox addon sdk toolbarbutton图标

widget.contentURL = "http://127.0.0.1:8082/static/icons/eth_16.png"; 

与我试过toolbarbuttons:

Toolbarbutton.image = "http://127.0.0.1:8082/static/icons/eth_16.png"; 

无任何影响。该图像似乎只在构建toolbarbutton时使用。

还试图销毁并重新创建与不同的图标的按钮,但这会导致令人讨厌的闪烁。

任何想法,将不胜感激。

+0

您使用的是哪个toolbarbutton库? – canuckistani 2012-02-13 17:25:19

+0

我正在使用Eric Volds库。 https://github.com/voldsoftware/toolbarbutton-jplib – Franz657587 2012-02-14 17:28:38

+0

这可能是库的限制 - 你有没有考虑直接联系Erik? – canuckistani 2012-02-15 01:17:53

回答

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 

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