我想通过点击每次点击图片时将其状态从true更改为false的图片来保存布尔值。
所以我只想写一些像
这样的东西function SwitchByImage(propertyName) {
var oldValue=chrome.storage.sync.get({propertyName}, null);
var newValue=!oldValue;
chrome.storage.sync.set({propertyName:newValue},null);
if (newValue) {
$("#whateverimage").attr("src","upimage.jpg");
} else {
$("#whateverimage").attr("src","downimage.jpg");
}
}
我知道这不起作用。我添加“null”的地方应该是一个函数。我的问题是:存储工作异步,所以似乎不可能按顺序写入和读取我的数据。
解决此问题的最佳方法是什么?
答案 0 :(得分:3)
由于 chrome.storage.sync.get
是异步的,因此获取的值将在回调中可用,因此应该放置其余代码:
function SwitchByImage(propertyName) {
chrome.storage.sync.get(propertyName, function(items) {
var oldValue = items[propertyName];
var newValue = !oldValue;
chrome.storage.sync.set({ propertyName: newValue });
if (newValue) {
$("#whateverimage").attr("src", "upimage.jpg");
} else {
$("#whateverimage").attr("src","downimage.jpg");
}
});
}