在 chrome 扩展中保存对象
Saving objects in chrome extension
我一直在研究这个扩展,但遇到了一个问题。我尝试使用同步和本地存储来保存数据,但总是在我关闭对象时消失。那么有没有办法解决我的问题,或者有其他方法可以在 chrome 上保存对象,或者我被前端 Web 开发困住了。
如果需要,这里有代码
objekat={
Opis:opis.value,
Broj:select.value,
Tip:tip
}
chrome.storage.sync.set({objekat},function() {
console.log('Value is set to ' , objekat);
});
chrome.storage.sync.get(objekat,function(result) {
console.log('Value currently is ', result.Broj);
});
当写 {objekat}
时,它意味着 {objekat: objekat}
所以你在包含整个对象的存储中创建一个键 'objekat',但是你使用 [= 一次读取三个键14=] 语法所以当然没有,因为你没有写那些单独的键。
解决方案:
chrome.storage.sync.get('objekat', result => {
console.log('Value currently is ', result.objekat.Broj);
});
API 是异步的,因此您的 get
可能很容易 运行 在 set
完成之前。为防止这种情况,请将整个 get
块放在 set
.
的回调中
您可以将所有密钥作为单独的条目保存在存储中,并一次或单独读取它们:
chrome.storage.sync.set(objekat, () => {
chrome.storage.sync.get('Broj', result => {
console.log('Broj:', result.Broj);
});
chrome.storage.sync.get(objekat, result => {
console.log('All values', result);
});
});
有一种不同的方法可以将数据保存到 localStorage 中,但我没有注意到它
// Key save whole object
localStorage.setItem("key", JSON.stringify(objekat))
并通过函数从 localStorage 中获取数据
function getdata(){
var val = localStorage.getItem(objekat.ID);
return val;
}
我一直在研究这个扩展,但遇到了一个问题。我尝试使用同步和本地存储来保存数据,但总是在我关闭对象时消失。那么有没有办法解决我的问题,或者有其他方法可以在 chrome 上保存对象,或者我被前端 Web 开发困住了。
如果需要,这里有代码
objekat={
Opis:opis.value,
Broj:select.value,
Tip:tip
}
chrome.storage.sync.set({objekat},function() {
console.log('Value is set to ' , objekat);
});
chrome.storage.sync.get(objekat,function(result) {
console.log('Value currently is ', result.Broj);
});
当写 {objekat}
时,它意味着 {objekat: objekat}
所以你在包含整个对象的存储中创建一个键 'objekat',但是你使用 [= 一次读取三个键14=] 语法所以当然没有,因为你没有写那些单独的键。
解决方案:
chrome.storage.sync.get('objekat', result => {
console.log('Value currently is ', result.objekat.Broj);
});
API 是异步的,因此您的
的回调中get
可能很容易 运行 在set
完成之前。为防止这种情况,请将整个get
块放在set
.您可以将所有密钥作为单独的条目保存在存储中,并一次或单独读取它们:
chrome.storage.sync.set(objekat, () => { chrome.storage.sync.get('Broj', result => { console.log('Broj:', result.Broj); }); chrome.storage.sync.get(objekat, result => { console.log('All values', result); }); });
有一种不同的方法可以将数据保存到 localStorage 中,但我没有注意到它
// Key save whole object
localStorage.setItem("key", JSON.stringify(objekat))
并通过函数从 localStorage 中获取数据
function getdata(){
var val = localStorage.getItem(objekat.ID);
return val;
}