2013-07-24 93 views
2

我正在創建一個通過快捷方式激活的Chrome擴展。基本上,在您正在瀏覽的頁面上創建一個div,其中有幾個問題。每個答案都帶有一個複選框。保存Chrome瀏覽器標籤/瀏覽器中複選框的狀態在Chrome擴展中

用戶然後可以選擇一個答案或幾個,並將需要去另一個頁面/選項卡,他/她可以選擇更多的選項或更少。

問題是,一旦您在另一個選項卡中激活此擴展程序,用戶從另一選項卡中單擊的所有複選框都不會傳遞到新選項卡(儘管它們保存在該選項卡上)。因此,我的目標是找出如何在本地緩存這些信息,以便用戶可以訪問不同的選項卡並繼續使用這些複選框,並將它們保存在各個選項卡中。

我一直在閱讀關於Chrome.Storage(https://developer.chrome.com/extensions/storage.html),但無法弄清楚語法將如何。

想知道是否有人能指點我一個更好的例子,或讓我開始在這裏。

歡呼和感謝, -Y

回答

2

如果你想將數據保存到用戶的谷歌賬戶跨計算機善良,使用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); 
+1

只是想知道:一旦複選框被點擊並保存,它會如何知道? (對不起,如果這是一個noob問題,只是試圖理解它,因爲我得到它的工作文本區域,但不復選框) –

+0

我不知道正常的JavaScript,但如果你使用jQuery,你可以聽'改變'事件。示例:http://stackoverflow.com/a/9180144/206410官方文檔:http://api.jquery.com/change/ –

相關問題