firefox扩展保存在首选项中

时间:2011-03-09 09:37:47

标签: string firefox preferences save

我想在firefox扩展中将一个简单的字符串保存到首选项中。该字符串应该可以在单独的浏览器会话之间和重新启动后访我找到了以下代码但由于某种原因它无法正常工作。我之前尝试过localStorage,但这也没有用:

保存功能代码:

var prefs = Components.classes["@mozilla.org/preferences-service;1"]
                .getService(Components.interfaces.nsIPrefBranch);

var str = Components.classes["@mozilla.org/supports-string;1"]
      .createInstance(Components.interfaces.nsISupportsString);

str.data = window['myglobalvariable'];

prefs.setComplexValue("myglobvar", 
      Components.interfaces.nsISupportsString, str);

检索功能代码:

var prefs = Components.classes["@mozilla.org/preferences-service;1"]
                .getService(Components.interfaces.nsIPrefBranch);

var value = prefs.getComplexValue("myglobvar",
  Components.interfaces.nsISupportsString).data;

我无法弄清楚为什么它不起作用。

1 个答案:

答案 0 :(得分:2)

如果您的首选项是整数或布尔值,则getCharPref不起作用,您必须使用

getBoolPref() or getIntPref()

http://blog.mozilla.org/addons/2009/01/28/how-to-develop-a-firefox-extension/