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

标签 javascript cross-browser greasemonkey tampermonkey

假设我有一个数组 test,它是通过 GM_setValue('test', []); 存储的,当脚本第一次运行时确保它就在那里。

现在,如果我要通过 var test = GM_getValue('test'); 将局部变量 test 分配给它,则在像这样的脚本 test.push({id: '...'}); 然后通过执行此操作保存它存储的数组将是这个 [{ 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'] 仍然返回 undefined

这在带有 Tampermonkey 的 Chrome 上运行完美,但是当脚本在带有 Greasemonkey 的 Firefox 上运行时会出现问题。可能是什么问题?

最佳答案

GM_setValue 不存储对象;它存储字符串或整数。参见 the doc page .

使用类似 GM_SuperValue 的序列化程序.

关于javascript - 无法通过 Firefox 中的键获取存储的对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21187650/

相关文章:

javascript - 如何使用 JavaScript 更改 HTML 元素的 ID?

javascript - 无法将脚本附加到头部

javascript - 如何跨多个选项卡保存 greasemonkey 输出

javascript - 警告 : Failed prop type: Invalid prop `error` of type `string` expected `boolean`

#idValue.classValue 选择器的 CSS 选择器浏览器兼容性?

html - 输入类型数字的跨浏览器样式,使其长度不会超过必要的长度

javascript - 脚本可以使用 Greasemonkey 但不适用于 Tampermonkey。是因为 jQuery $.get 吗?

Javascript POST 到 PHP 页面

javascript - 如何旋转图像 - Canvas 像素操作?

javascript - 改进 webpack 图像/css 构建时间?