我希望我没有错过这个问题的答案,这个问题看起来太简单了,但我无法在 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++
放入 PageMod
的 onAttach
构造函数中.
另外,为什么ss.storage.page_visits/5 == 1
?
ss.storage.page_visits == 5
关于javascript - 在 Firefox Addon SDK 中存储/访问简单变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090626/