在 chrome.storage 中正确存储对象
Properly storing an object in chrome.storage?
我正在尝试使用chrome.storage在我的chrome扩展程序中存储一个包含其他对象的对象 - 但是在初始化它并使用chrome.storage.sync.get正确获取它时遇到问题。我知道我应该以chrome.storage.sync.get(key: "value", function(obj) {}
的形式获取对象 - 问题是我不确定如何
- 第一次使用 get 初始化对象
- 使用 set 正确更新我的对象
我有以下代码来创建对象并添加我需要的数据。
allData = {};
currentData = {some: "data", goes: "here"};
allData[Object.keys(allData).length] = currentData;
这将正确地为我提供一个对象,其第一个键 (0) 设置为 currentData。 (Object: {0: {some: "data", goes: "here"}})
按预期工作,allData[Object.keys(allData).length] = currentData;
稍后会将当时的任何当前数据正确推送到我的对象中。
但是我如何正确地将其永久存储在chrome.storage中? chrome.storage.sync.get("allData", function(datas) {})
无法创建一个空的 allData 变量,allData: {}
、allData = {}
和各种不同的东西也会返回undefined
或其他错误。如何正确初始化空对象并将其存储在 chrome.storage 中?还是我做错了这一切,需要将其分解为关联数组才能使其工作?
我基本上需要上面的一小块工作代码永久存储在chrome.storage中,以便我可以根据需要使用它。
首先需要设置存储中的数据:
allData = {};
currentData = {some: "data", goes: "here"};
// to initialize the all data using the storage
chrome.storage.sync.get('allData', function(data) {
// check if data exists.
if (data) {
allData = data;
} else {
allData[Object.keys(allData).length] = currentData;
}
});
// Save it using the Chrome extension storage API.
chrome.storage.sync.set({'allData': allData}, function() {
// Notify that we saved.
message('Settings saved');
});
之后,您应该能够使用chrome.storage.sync.get('allData', function(){ ... })
界面访问数据。
你可以用新的JavaScript(ECMAScript 6)轻松做到这一点,看看增强的对象属性:
var currentData = {some: "data", goes: "here"};
chrome.storage.local.set({allData: currentData });
在旧的方式中,是这样的:
var obj = {};
var key = "auth";
obj[key] += "auth";
obj[key] = JSON.stringify({someKey: someValue});
- 访问存储对象
- 在 Jquery 中,我可以存储对象引用并在以后使用它吗?
- 在JSON中存储对象引用
- 在外部JSON文件中存储对象数组
- 如何使用 json.stringify 在 cookie 中正确存储对象数组
- 将数据追加到本地存储对象
- 在 Javascript 中存储对象的当前状态的最佳实践是什么?
- 在 chrome.storage 中正确存储对象
- 存储对象事件的内容
- 本地存储对象数组:仅将新对象推送到数组中(如果唯一)
- jQuery选择器存储对象?如何强迫它不这样做
- 如何在 html5 的本地存储对象中存储数组
- 基于另一个对象键/值存储对象值
- JavaScript:如何在数组中存储对象
- 用于在javascript中存储对象的类型化数组
- 我可以将javascript存储在本地存储对象中并运行它吗
- 如何在HTML元素中存储对象引用
- 如何使用jQuery$.cokie()在cookie中存储对象数组
- 如何在JavaScript中访问和存储对象数组
- 是否有一个好的方法来存储对象的引用