0

我在使用由函数设置的状态栏标签值时遇到问题。我必须在用户关闭浏览器之前保存这个值,恢复它并再次运行该功能。我认为可能的唯一方法是使用cookies。我在 MDN 中发现了 2 个有趣的代码: 用于设置 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”设置一个互联网地址?对不起,但我还在学习它:)。如果我得到一些帮助会很高兴。非常感谢!

4

1 回答 1

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

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

例如

let myPrefs=Services.prefs.getBranch("extensions.myextension.")
myPrefs.setCharPref('thelabelvalue', text_value_from_label);
myPrefs.getCharPref('thelabelvalue');
于 2012-06-21T07:54:48.583 回答