2

我有一个基于 xul 覆盖的 Firefox 插件,它可以工作。它在 content/options.xul 中定义了内联选项,当用户转到 Firefox->Add-ons->Extensions->{The Name of My Extension}->Options 时,它们会正确显示/运行

问题是,我可以在我的加载项上创建一个按钮,通过单击将用户带到 Firefox->Add-ons->Extensions->{The Name of My Extension}->Options 来启动我的选项,或者通过启动基于 options.xul 的对话框?

现在,我正在维护一个单独的 options.html 和 options.js,当用户通过 Firefox 按钮导航到那里时,它们获取和设置与 options.xul 处理的相同设置,但我更愿意转储 options.html 和 options.js 并且仅维护我的 main.js 和 options.xul。

任何评论或代码示例将不胜感激。

4

1 回答 1

4

BrowserOpenAddonsMgr()这是通过浏览器窗口中定义的全局函数最容易做到的,如下所示:

BrowserOpenAddonsMgr("addons://detail/" + encodeURIComponent(addonID));

此功能负责关注现有的附加组件选项卡(如果有一个或打开一个新选项卡)。它不会向下滚动到选项,但是如果附加组件的描述很长,这是一个问题。从 Firefox 12 开始,这可以通过在视图标识符中添加“/preferences”来解决:

BrowserOpenAddonsMgr("addons://detail/" + encodeURIComponent(addonID) + "/preferences");

对于较旧的 Firefox 版本,您将不走运(并且您不应该在此处使用此后缀,它不起作用)。另一个问题是加载项管理器获取所有扩展的元数据可能会有一个冗长的“加载”阶段。

于 2012-04-17T16:09:15.070 回答