在 Firefox 中无法通过键获取存储的对象值

3
假设我有一个名为test的数组,通过GM_setValue('test', []);在第一次运行脚本时将其存储以确保它存在。
现在,如果我通过var test = GM_getValue('test');将本地变量test赋值给它,在脚本的某个点上推入一个新对象,如test.push({id: '...'});,然后通过GM_setValue('test', test);进行保存,那么存储的数组将是这样的[{ id: '...' }]
现在我需要在脚本后面获取数组中对象的键id的值,所以我会简单地执行test[0]['id']。然而,这似乎返回undefined
好吧,有可能它由于某种原因没有存储对象,所以接下来我要做的是:
console.log(test);
console.log(test[0]);
console.log(test[0]['id']);

令人惊讶的是,test 返回一个包含对象和 id 的数组,test[0] 返回一个包含正确值的 id 对象,但是 test[0]['id'] 仍然返回 未定义

在 Chrome 中使用 Tampermonkey 完全没有问题,但当脚本在 Firefox 中运行 Greasemonkey 时会出现问题。可能的问题是什么?

1个回答

2

GM_setValue不能存储对象,只能存储字符串或整数。请参考文档页面

可以使用类似GM_SuperValue的序列化工具。


哦,是的,我不是一个聪明的人。我甚至翻了几遍那个页面。我很惊讶自己没有因为喝过期牛奶而死亡。谢谢! - Prime

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接