将对象设置为Chrome存储
Setting Object to Chrome Storage
所以我试图通过chrome.storage API保存一个对象。相关代码为:
var images = null;
var storage = chrome.storage.sync;
var key = "key";
images = getImages(source);
alert(images.length); // returns 4
storage.set({key: images});
storage.get("key", function(result) {
alert(result.length); // returns undefined
});
我测试过,在getImages()
函数之后,图像是一个长度为4的包装集JQuery对象。但是,当我尝试通过storage.get
回调访问images.length
时,结果是未定义的。
有人能帮我识别存储和/或检索这个JQuery对象时的错误吗?
更新1:
谢谢大家的帮助。作为对用例的澄清,我使用chrome.storage
而不是localStorage
,因为我计划将扩展信息传递给另一个脚本。
幸运的是,TranQ/Xan的解决方案使我能够通过storage.get
调用访问阵列。
我在处理存储在数组中的包装集JQuery对象时仍然遇到问题,但我将提出一个单独的问题,因为当前的解决方案封装了更广泛的用例。
TranQ的评论切中要害。
推测images
是一个数组。将该数组存储在"key"
键下。
当您执行get()
函数时,它会返回一个对象,该对象填充了您要求的所有键值对,即使您只要求一个键。
因此,result
就是一个对象{key : [/* something */]}
。对象没有length
属性,并且会得到undefined
您需要使用result.key
(或result["key"]
)来访问您的阵列。
相关文章:
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Chrome存储API无法使用内容脚本
- 有没有一种方法可以从chrome'的存储映像
- Chrome,Safari在从本地存储读取时挂起,而Firefox很好
- 如何使用 Chrome 存储空间从对象中移除数据
- Chrome/Tampermonkey 用户脚本存储在文件系统上的什么位置
- 将对象设置为Chrome存储
- Chrome扩展程序 - 加密要存储在Chrome存储中的数据
- 使用 chrome 存储 API 从本地存储中存储和检索数据
- 从 Chrome 存储中获取所有键:值
- TypeError:对象不是函数(JavaScript Chrome存储同步)
- Chrome扩展:如何使用插入CSS从Chrome存储中插入以变量为条件的CSS
- 奇怪的chrome存储错误
- 使用Chrome存储而不是本地存储创建解析会话
- 将本地存储转换为Chrome存储进行get和set
- Chrome存储给出未定义的存储计时器
- 变量won't在chrome应用中使用chrome存储API更新
- 更新Chrome存储对象键值
- HTML5 sessionStorage或chrome.存储的Chrome扩展
- 在chrome存储API集合调用中使用的密钥是否可以是变量