javascript - 在 Firefox Addon SDK 中存储/访问简单变量

标签 javascript firefox firefox-addon local-storage firefox-addon-sdk

我希望我没有错过这个问题的答案,这个问题看起来太简单了,但我无法在 Mozilla 或 Stackoverflow 之间找到答案。

我正在尝试使用 Mozilla Addon SDK 简单存储来存储一个数字,该数字包含自激活该插件以来已访问的页面数。为了做到这一点,我在每次页面加载时增加一次变量数。请参阅下面的代码。我唯一找不到的信息是如何从控制台加载存储的数据(或者,如果我误解了,这些数据不是本地存储在浏览器中吗?)。评论中说“//load ss.storage.page_visits”的地方就是我的问题出现的地方 - 我无法理解如何加载这些数据。

var ss = require("sdk/simple-storage");
var pageMod = require("sdk/page-mod");
//load ss.storage.page_visits
if (!ss.storage.page_visits){
    ss.storage.page_visits = 0;
}
var test=   '"<style>\
                h1{\
                    font-size: 5em;\
                    color: red;\
                    font-family: Helvetica;\
                }\
            </style>\
                <h1>test</h1><h2>' + ss.storage.page_visits + '</h2>"';

ss.storage.page_visits++;
if (ss.storage.page_visits/5 == 1){
    pageMod.PageMod({
      include: "*",
      contentScript: 'document.body.innerHTML = ' +
                     test
    });
    ss.storage.page_visits = 0;
}else{
    pageMod.PageMod({
      include: "*",
      contentScript: 'document.body.innerHTML = ' +
                     test
    });
}
console.log(ss.storage.page_visits);

最佳答案

简单存储没有任何问题。就是这样

By default, cfx run and cfx test use a new profile each time they are executed. This means that any profile-specific data entered from one run of cfx will not, by default, be available in the next run.

参见Using --profiledir每次都在相同的配置文件上运行,或 Extension Auto-Installer无需重新启动浏览器即可运行您的扩展。

按照当前的设置方式,您存储的变量将在每次安装时增加一次,而不是每次访问页面时增加一次。如果您想在页面访问时增加它,则需要将 ss.storage.page_visits++ 放入 PageModonAttach 构造函数中.

另外,为什么ss.storage.page_visits/5 == 1

ss.storage.page_visits == 5

关于javascript - 在 Firefox Addon SDK 中存储/访问简单变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090626/

相关文章:

java - 从浏览器将网络摄像头视频录制到本地文件系统

javascript - 在悬停时追加跨度一次

html - 为什么 firefox 不能从本地主机播放 HTML5 视频元素?

javascript - 无法让自定义下拉菜单在 QuillJS 编辑器中工作

Java 拒绝 ssl 证书,但 Firefox 接受它

java - 当测试失败时,Selenium 无法终止浏览器

css - firebug的 "Open With Editor"函数有什么用?

javascript - 在具有循环依赖的大对象上调用 JSON.stringify 时出现 "too much recursion"错误

javascript - 如何从 JSON 中的指定键获取值

javascript - 检查数组中的项目,是否有打印 JS/HTML 中的特定文本