在Chrome扩展程序中的Chrome标签/浏览器中保存复选框的状态

时间:2013-07-24 23:41:11

标签: google-chrome-extension

我正在创建一个通过快捷方式激活的chrome扩展程序。基本上,在您所在的页面上创建一个div,它有几个问题。每个答案都有一个复选框。

然后,用户可以选择一个或多个答案,并且需要转到另一个页面/标签,他/她可以选择更多或更少的选项。

问题在于,在其他选项卡中激活此扩展后,用户从另一个选项卡单击的所有复选框都不会传递到新选项卡(尽管它们保存在该选项卡上)。因此,我的目标是弄清楚如何在本地缓存该信息,以便用户可以转到不同的选项卡并继续使用这些复选框,它们将被保存在选项卡中。

我一直在阅读Chrome.Storage(https://developer.chrome.com/extensions/storage.html),但无法弄清楚语法是怎样的。

想知道是否有人可以给我一个更好的例子或让我从这里开始。

欢呼和感谢, -Y

1 个答案:

答案 0 :(得分:2)

如果您想将数据保存到用户的Google帐户以获得跨计算机的优点,请使用chrome.storage.sync

但如果您只需要在本地保存数据,请使用chrome.storage.local

保存数据:

var answersToSet = {};
answersToSet.answerA = 'foo';
answersToSet.answerB = 'bar';
chrome.storage.sync.set(answersToSet, function(){
    if (chrome.runtime.lastError) {
        alert('Error setting answers:\n\n'+chrome.runtime.lastError);
    } else {
        alert('Answers saved.');
    }
});

检索数据

var answersToGet = [];
answersToGet.push('answerA');
answersToGet.push('answerB');
chrome.storage.sync.get(answersToGet, function(answers){
    console.log(answers.answerA);
    console.log(answers.answerB);
});

或者,你可以使用localStorage,虽然这不是异步的:

localStorage.answerA = 'foo';
localStorage.answerB = 'bar';
console.log(localStorage.answerA);
console.log(localStorage.answerB);