Firefox 扩展,存储变量值直到 firefox 重新启动

Firefox extension, storing variable value until firefox is restarted

构建 Firefox 扩展,我需要在用户执行操作后保存一个值。我需要这个值在 Firefox 重新启动之前一直存在。我正在使用此代码进行测试。

 Components.utils.import("chrome://***/content/symbols.jsm");
 window.addEventListener("load", function() { myExtension.init() }, false);
    var myExtension = {
        init: function() {
        document.addEventListener("DOMContentLoaded", this.onPageLoad, false);
        },

        onPageLoad: function() {

         if (blocked == 0) {
         alert("OFF");
         }
         else {
         alert("ON");
         }  
        blocked = 1;
      }
}

symbols.jsm

 var EXPORTED_SYMBOLS = ["blocked"];

 var blocked = 0;

使用此代码启动 Firefox 并显示 "OFF",因为尚未设置变量。(按预期)导航到不同的页面,甚至打开一个新选项卡将显示 "ON" 如何一旦打开新的 window,变量就会丢失并显示 "OFF"。在所有 Firefox windows 关闭(重启)之前,如何使变量值保持不变。

我不想在 about:config 的首选项中设置它,因为用户可以轻松更改它。

您可以使用 JavaScript 代码模块 https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Using

您的模块应该导出函数而不仅仅是变量,例如

var EXPORTED_SYMBOLS = ["getBlocked", "setBlocked"];
var blocked = 0;
function getBlocked() {
    return blocked;
}
function setBlocked(value) {
    blocked = value;
}

然后使用函数代替变量名