编程语言
首页 > 编程语言> > javascript – Firefox SDK简单存储在重启后丢失关联数组数据

javascript – Firefox SDK简单存储在重启后丢失关联数组数据

作者:互联网

关于

我正在使用Firefox SDK加载一个插件.在插件中,我存储了一个带简单存储的关联数组.

关联数组我用简单的prefs存储

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']);
    }
});

但是现在当我运行代码时,会记录运行’undefined’的值

(前三个行来自上一个会话,存储有simple-prefs,3个工作行来自新会话)

>正确的日志数量,因此存在正确的值数
>我正确使用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']);

改变var spammer = []; to var spammer = {};

标签:json,javascript,arrays,firefox-addon,firefox-addon-sdk
来源: https://codeday.me/bug/20190708/1404005.html