保存并恢复Firefox扩展的价值

时间:2012-06-21 01:56:09

标签: javascript firefox firefox-addon

我遇到状态栏标签值的问题,该值由函数设置。我必须在用户关闭浏览器之前保存此值,恢复它并再次运行该功能。 我认为可能的唯一方法是使用cookies。 我在MDN中找到了两个有趣的代码: 用于设置cookie:

var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); 
    var cookieUri = ios.newURI("http://www.yourplacewhereyouwanttosetthecookie.com/", null, null); 
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService); 

    cookieSvc.setCookieString(cookieUri, null, "your_key=your_value;", null); 

并阅读它们:

var ios = Components.classes["@mozilla.org/network/io-service;1"] 
                .getService(Components.interfaces.nsIIOService); 
    var uri = ios.newURI("http://www.google.com/", null, null); 
    var cookieSvc = Components.classes["@mozilla.org/cookieService;1"] 
                      .getService(Components.interfaces.nsICookieService); 
    var cookie = cookieSvc.getCookieString(uri, null);  
问题是我无法理解这一点。我可以把我的状态栏的标签放在哪里? “your_key = your_value”是什么意思?我如何使用阅读代码恢复这个值?为什么我要在“newURI”设置一个网址? 对不起,我还在学习:)。如果我得到一些帮助,我会很高兴的。 非常感谢!

1 个答案:

答案 0 :(得分:1)

使用首选项保存该信息可能更好。将首选项添加到默认首选项js文件,例如pref("extensions.myextension.thelabelvalue", "whatever"); https://developer.mozilla.org/en/Building_an_Extension#Defaults_Files

然后将Components.utils.import("resource://gre/modules/Services.jsm");添加到主javscript文件的顶部https://developer.mozilla.org/en/JavaScript_code_modules/Services.jsm

然后您可以使用此处列出的set / get首选项方法:https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIPrefBranch

e.g。

let myPrefs=Services.prefs.getBranch("extensions.myextension.")
myPrefs.setCharPref('thelabelvalue', text_value_from_label);
myPrefs.getCharPref('thelabelvalue');