如何从Firefox插件读取配置文件首选项?

如何从Firefox插件读取配置文件首选项?,firefox,firefox-addon,Firefox,Firefox Addon,我正在这样做(Firefox 66.0.5,MacOS): 我明白了: JavaScript error: moz-extension://9390a488-d749-d140-91b6-fb1b2a86053f/foo.js, line 1: TypeError: Components.classes is undefined 读取配置文件首选项的正确方法是什么 我试过这个: var prefs = Components.classesByID['@mozilla.org/preferenc

我正在这样做(Firefox 66.0.5,MacOS):

我明白了:

JavaScript error: moz-extension://9390a488-d749-d140-91b6-fb1b2a86053f/foo.js,
line 1: TypeError: Components.classes is undefined
读取配置文件首选项的正确方法是什么

我试过这个:

var prefs = Components.classesByID['@mozilla.org/preferences-service;1']
  .getService(Components.interfaces.nsIPrefBranch);
得到这个:

JavaScript error: moz-extension://ebac8f96-717d-0c4b-b2d3-a7d6f3515843/auth.js,
line 1: TypeError: Components.classesByID is undefined
WebExtensions更改用户偏好的能力非常有限。有几个,目前有14个,可以通过API影响。还有一些可以通过其他WebExtensionAPI(例如)进行有效更改,但没有直接更改。不幸的是,没有直接的方法从WebExtension读取或设置用户首选项。直接调整用户偏好的功能仅适用于较旧样式的附加组件(从Firefox 57起全部删除)

关于您对
组件的使用
以及您遇到的具体错误,请参阅我的答案以了解更多详细信息。在WebExtension中不可能使用
组件

我认为在Firefox发布版本中调整首选项的唯一方法是使用它与您也安装的本机应用程序进行通信。Firefox退出/停止/关闭后,本机应用程序可以读取并更改正在运行的Firefox配置文件的配置文件目录中的配置文件。然后它可以重新启动Firefox


在Firefox的夜间版和开发者版版本中,应该仍然可以使用,这将允许您使用
组件
界面进行所需的首选项更改。但是,如果这是一个您想要公开发布的扩展,那么这不是一个可行的解决方案。

明白了,谢谢您的详细回答。也许你也能帮我@是的,我对硒不太熟悉,所以我不太适合这个问题。不幸的是,与旧的插件类型相比,WebExtensions的功能极其有限。可能无法获取这些信息。也许您可以想出其他可能的方法,从启动
firefox
的命令行向加载项发送信息?
JavaScript error: moz-extension://ebac8f96-717d-0c4b-b2d3-a7d6f3515843/auth.js,
line 1: TypeError: Components.classesByID is undefined