我遇到状态栏标签值的问题,该值由函数设置。我必须在用户关闭浏览器之前保存此值,恢复它并再次运行该功能。 我认为可能的唯一方法是使用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”设置一个网址?
对不起,我还在学习:)。如果我得到一些帮助,我会很高兴的。
非常感谢!
答案 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');