如何以编程方式修改 Firefox 偏好设置而无需重新启动?

如何以编程方式修改 Firefox 偏好设置而无需重新启动?

气相色谱法,这很简单

pref set <setting> <value>

加载user.js文件需要重新启动 Firefox。我想在单个会话中来回切换设置。

答案1

通过编程方式管理偏好设置

我想通过编程来修改浏览器首选项以管理代理配置。反复试验表明network.proxy.type)是控制代理配置的首选项,互联网研究(我如何找到这个问题)表明,动态修改浏览器首选项的方法是在 Firefox 的浏览器控制台命令行

使用浏览器控制台命令行

请注意浏览器控制台不同于Web 控制台

浏览器控制台就像Web 控制台,但应用于整个浏览器而不是单个内容选项卡。

另请注意,使用前必须启用命令行 UI:

浏览器控制台命令行默认处于禁用状态。要启用它,请将首选项设置为devtools.chrome.enabled,或在开发者工具设置中设置“启用 chrome 调试”选项。trueabout:config

可以使用以下键盘快捷键打开浏览器控制台:

  • Ctrl- Shift- J(电脑键盘)
  • Ctrl- Shift- J(Mac 键盘)

使用首选项 API

我的研究表明 Firefox 提供了Services.prefs对象具有多种获取和设置首选项的方法 - 取决于首选项的类型,例如布尔值、整数、字符串。

我怀疑network.proxy.type偏好很可能是整数类型,因为它可以有从 0 到 5 的有用值(参见Network.proxy.type - MozillaZine 知识库)我使用getPrefType()方法并将其返回值与以下返回值进行比较PREF_INT

>> Services.prefs.getPrefType("network.proxy.type") === Services.prefs.PREF_INT
True

然后我用getIntPref()方法查看首选项设置为何:

>> Services.prefs.getIntPref("network.proxy.type")
5

MozillaZine 知识库网络.代理.类型描述5为对应于

使用系统代理设置。(Linux 中的默认设置;从 1.9.2.4 /Firefox 3.6.4 开始,所有平台的默认设置)。

我能够使用setIntPref()将此值更改为1(使用手动代理配置)通过运行:)

>> Services.prefs.setIntPref("network.proxy.type", 1)

相关内容