【发布时间】:2014-08-07 13:39:15
【问题描述】:
关于
我正在开发一个带有 Firefox SDK 的插件。在插件中,我使用简单存储存储了一个关联数组。
代码
我用简单的首选项存储的关联数组
var spammer = [];
spammer['id'] = res[0];
spammer['username'] = res[1];
spammer['date'] = res[2];
ss.storage.spammers.push(spammer);
console.log(ss.storage.spammers[i]['id']);
console.log(ss.storage.spammers[i]['username']);
console.log(ss.storage.spammers[i]['date']);
这似乎有效,当加载项处于活动状态时会记录正确的值。
但是,当我在浏览器中运行以下代码时
require("sdk/tabs").on("ready", function(tab) {
for (i = 0; i < ss.storage.spammers.length; i++) {
console.log(ss.storage.spammers[i]['id']);
console.log(ss.storage.spammers[i]['username']);
console.log(ss.storage.spammers[i]['date']);
}
});
但现在当我运行代码时,会记录“未定义”值
(前 3 行来自使用 simple-prefs 存储的上一个会话,3 个工作行来自新会话)
- 生成了正确数量的日志,因此存在正确数量的值
- 我正确使用了 SDK 配置文件
问题
难道不能用simple-storage来存储关联数组还是有别的问题?
【问题讨论】:
-
“cfx run”是否会发生这种情况,或者安装插件时也会发生这种情况?
-
当我使用 --profiledir 选项运行 'cfx run' 时会发生这种情况。旧存储数据返回未定义。从当前会话添加的所有数据都返回 OK。
标签: javascript arrays json firefox-addon firefox-addon-sdk