2

我也尝试在这里搜索谷歌搜索。但似乎我没有运气。

我正在使用 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 时我们应该使用什么?或者其他,哪个更快更方便?

4

3 回答 3

1

最简单的方法是使用 Erik Vold 的工具栏库:

https://github.com/voldsoftware/toolbarbutton-jplib/blob/master/lib/toolbarbutton.js

如果您决定自己编写,我建议您查看 Erik 的代码,因为它确实处理了卸载按钮。

于 2012-10-20T18:31:18.387 回答
1

我找到了解决方案!

我们可以在我们的附加组件上监听禁用或卸载事件并在那时删除 XUL 元素。如:

exports.onUnload = function(reason) {
  // remove code here
}

根据附加 SDK 文档,附加组件卸载事件存在一些错误,但我认为很快就会解决。

SDK里面有一个卸载模块,我还没试过。希望有人分享一下。

上面的解决方案对我来说很有效,希望这对你也有帮助。谢谢!

于 2012-10-21T17:38:59.363 回答
0

Firefox 插件 sdk 有一个 bug,所以如果你想检测插件的卸载。您必须使用“禁用”而不是“卸载”

exports.onUnload = function (reason) {
         if (reason==='disable') {
            //remove code here
         }
    };
于 2014-07-01T14:43:48.833 回答