2012-03-23 61 views
5

遇到一個大問題,當我使用「選項」頁更新localStorage時,確實存儲了新值,但我的background.js保留了第一個值負載即使我把這樣的:Chrome擴展程序:background.js不採用localStorage中的新值

var value = localStorage['item']; 

當我刷新這是確定的,但很煩人的延伸......

有關於任何解決?

Regards

回答

6

Are you sure?您是否記住後臺頁面上的腳本只會在第一次加載擴展時執行一次。所以你需要告訴後臺頁面localStorage項目已經更新並更新你的變量。或者你的背景代碼只能訪問localStorage而不是使用變量。
作爲一個例子,這個代碼將在後臺執行網頁,將更新變量值的函數....
背景

// the following line will only be executed when the extension first loads 
var value = localStorage['setting']; 

function updateSetting() { 
    value = localStorage['setting']; 
} 

選項

localStorage['setting']=Math.random(); 
chrome.extension.getBackgroundPage().updateSetting(); 
+1

哦,你剛纔用你的第一句話打開我的大腦。我忘了背景頁面只執行一次,因爲我的setInterval()函數...然後,我沒有讓我的localStorage值位於腳本的頂部,而是將它移動到函數中,以便有時候檢索localStorage值。 – Syl 2012-03-23 12:42:10

相關問題