【问题标题】:Using preferences in Firefox在 Firefox 中使用首选项
【发布时间】:2008-10-27 04:00:29
【问题描述】:

如何在 Firefox 中访问用户首选项?我有以下代码:

var control = document.getElementById(control_id);
if (control) {
    control.setAttribute('color', nsPreferences.copyUnicharPref(prefstr, default_val));
}

但是当我运行它时,我得到以下信息:

Error: nsPreferences is not defined
Source file: chrome://backgroundtoggle/content/options.xul
Line: 9

我在浏览 Mozilla 文档时遇到了麻烦。我怎样才能让它做我想做的事?

【问题讨论】:

  • 实际上,我只是指这个答案,我注意到了这一点:“当您希望将非<prefpane> 元素放入 prefwindow 时,您应该将它们放在所有 <prefpane>s 之后。如果您将其他元素放在第一个 <prefpane> 之前,您可能会看到有关切换窗格的奇怪行为。”这与迈克·斯普罗斯所说的一件事相矛盾。见developer.mozilla.org/en/XUL/…——试试看我猜会发生什么。虽然你可能并不真的需要在你的 prefwindow 中使用该脚本,只是在你的主浏览器覆盖层中。

标签: firefox xul


【解决方案1】:

您似乎需要在您的.xul 文件中包含nsUserSettings.js

<script type="application/x-javascript" src="chrome://global/content/nsUserSettings.js" />

这是定义nsUserPreferences 的地方。

请参阅 here 以获取示例 options.xul 文件。 script 标签应该是prefwindow 的第一个子元素,以确保它在您自己的代码之前被加载。


附加信息

This 看起来像是一个关于如何编写 Firefox 扩展的不错的教程。它将 mozilla.org 上的所有相关信息整合到一个地方似乎做得很好,并且当您需要有关所涵盖主题的更多详细信息时,它包含指向 mozilla.org 的链接。我真希望导航能好一点,但你能做什么?使用左侧的导航窗格,然后单击 Tutorial 开始使用。您必须使用导航窗格浏览每个部分,这花了我几秒钟的时间才弄清楚,因为我在页面上寻找“下一个”和“上一个”链接。

【讨论】:

  • 有时您可以使用 nsPreferences,即使不包含脚本。我的猜测是,这是因为其他一些扩展已经为您加载了该脚本,导致您相信一切正常。然后,一个拥有比你少得多的附加组件的用户尝试安装你的扩展,但它不起作用。偷偷摸摸。
猜你喜欢
  • 1970-01-01
  • 2018-01-19
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多