使用chrome存储切换值

时间:2013-12-02 01:16:53

标签: javascript jquery google-chrome-extension

我想通过点击每次点击图片时将其状态从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”的地方应该是一个函数。我的问题是:存储工作异步,所以似乎不可能按顺序写入和读取我的数据。

解决此问题的最佳方法是什么?

1 个答案:

答案 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");
        }
    });
}