我试着在这里搜索谷歌搜索。但似乎我没有运气。
我正在使用Addon-SDK创建一个小的firefox插件。一切看起来都很酷但是UI元素。这真的很难实现。
我已经阅读了这里找到的工具栏按钮https://github.com/mozilla/addon-sdk/wiki/Community-developed-modules和Mozilla XUL,并决定通过跟踪浏览器窗口创建我自己的工具栏按钮,使用WindowUtils.onTrack()并操纵浏览器XUL DOM;
这几乎已经完成,但是当我尝试禁用并重新启用我的插件时。按钮没有消失,那里有2个按钮。
这太糟糕了,你可以告诉我如何在禁用或删除插件时销毁或删除其他XUL元素的按钮。我们正在使用addon-SDK,它是无重启的扩展。
我的另一个问题是在操作BrowserXULDom WindowUtils或WindowMediator时我们应该使用什么?或者另一种,哪种更快更方便?
答案 0 :(得分:1)
最简单的方法是使用Erik Vold的工具栏库:
https://github.com/voldsoftware/toolbarbutton-jplib/blob/master/lib/toolbarbutton.js
如果您决定自己编写,我建议您查看Erik的代码,因为它会处理卸载按钮。
答案 1 :(得分:1)
我找到了解决方案!
我们可以在加载项上监听禁用或卸载事件,并在那时删除XUL元素。 如:
exports.onUnload = function(reason) {
// remove code here
}
根据Add-on SDK文档,它有一些附加卸载事件的错误,但我认为它很快就会解决。
在SDK中,有一个卸载模块,我还没有尝试过。希望有人分享一下。
以上解决方案对我来说非常有用,希望对您也有帮助。 谢谢!
答案 2 :(得分:0)
Firefox插件sdk有一个错误,所以如果你想检测一个插件的卸载。你必须使用“禁用”而不是“卸载”
exports.onUnload = function (reason) {
if (reason==='disable') {
//remove code here
}
};