2

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

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

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

我一直在阅读有关 Chrome.Storage ( https://developer.chrome.com/extensions/storage.html ) 的信息,但无法弄清楚语法会是什么样子。

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

非常感谢,-Y

4

1 回答 1

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);
于 2013-07-26T04:02:22.373 回答