1

我有一个 Firefox 扩展,它实现了一些可以从 Firefox 的上下文菜单中调用的小功能。我制作了一个首选项窗口,显示每个首选项的无线电组,允许该功能显示在主 Firefox 菜单中,显示在扩展创建的子菜单中,或隐藏。这对每个扩展函数的工作方式完全相同,只是以下内容发生了变化:首选项 id、首选项名称、被调用函数名称和每个无线电组的标签。是否可以为每个函数创建一个包含这四个字符串的数组,然后动态定义所有首选项,而不是为每个首选项复制和粘贴相同的代码?

我很确定可以在我的首选项窗口中动态定义 XUL。但是,我不确定是否使用 pref() 命令在 defaults 文件夹中定义默认首选项(我不确定如何访问在扩展中其他位置定义的字符串)。我也不确定preferences.xul 文件的定义是否可以动态定义或者是否需要输入。

另外,您认为这是一个好主意还是坏主意?我在想它会使添加/删除功能更容易。

4

1 回答 1

1

对我来说听起来是个好主意。您可以在静态 XUL 文件中执行的任何操作,您都可以通过使用 DOM 函数(包括 的内容preferences.xul,无论它们可能是什么)创建 XUL 窗口的内容来动态执行此操作。就默认值而言,如果尚未设置任何值,您可以在浏览器启动时使用首选项 API 手动设置它们。您可以使用观察者服务来处理profile-after-change通知。使用首选项 API检查您的首选项是否已经设置了值,如果没有,请将它们设置为您选择的默认值。

要检查首选项是否已经存在,请使用适当的nsIPrefBranch方法尝试获取它。如果抛出异常,则它不存在。

于 2012-10-17T07:31:45.650 回答