我正在开发一个Chrome扩展程序,需要保存一些信息(主要是标签信息),这些信息将在扩展程序的整个生命周期中存在(例如,因为用户开始使用它直到他关闭浏览器)。
一个选项是使用localstorage,但localstorage只能保存字符串,这使我感到非常不舒服(因为我有一堆数据需要保存 - 日期,URL,整数等)。我正在寻找的是使用我自己的javascript对象,这些对象将在整个扩展期间生效 现在的问题是,每次用户点击浏览器操作时,在某些javascript文件的脚本中定义这些对象都会将其删除。换句话说,我有一个名为popup.html的浏览器操作,其中包含一个javascript文件(我想在其中保存我的对象),每次用户点击浏览器操作时,我在JS文件中定义的所有对象都会丢失,我希望一切都能坚持下去。
我有什么选择可以保持数据在浏览器操作中不断点击并且不是localstorage?
答案 0 :(得分:2)
你真的应该使用localStorage(你可以使用JSON.stringify和JSON.parse)。
如果您确实不想使用localStorage或服务器端存储,请使用IndexedDb:https://developer.mozilla.org/en/IndexedDB/Using_IndexedDB
答案 1 :(得分:2)
尝试使用Filesystem API的持久存储空间。这比localStorage
更可靠。用户清除缓存,cookie等后,localStorage
将被清除。文件系统更可靠。
答案 2 :(得分:0)
这个关于使用chrome.storage的答案对我来说比其他人好得多。
https://stackoverflow.com/a/14009240/766115
它类似于localStorage,但可以在弹出/后台和内容脚本之间工作。