0

我有一個Chrome擴展程序,它只是一個內容腳本。我想保留內容腳本中計算的一些數據,以便在瀏覽時輕鬆訪問它,而無需在每個頁面上重新計算。我只需要爲會話存儲數據。Chrome擴展程序的HTML5 sessionStorage或chrome.storage?

我正在看,但看起來數據會在會話結束後持續存在。我以前有使用HTML5 sessionStorage的經驗,但我覺得我應該在這裏利用Google的API。

任何輸入表示讚賞,謝謝!

回答

3

在內容腳本中,使用sessionStorage將訪問和修改該站點的sessionStorage,而不是您的擴展。

如果您希望它可用於其他網站上的內容腳本並避免破壞網站,則必須使用chrome.storage.local。

沒有自動清除chrome.storage.local數據,但您可以創建一個事件頁面,在啓動時清除它。

的manifest.json:

"background": { "scripts": [ "background.js" ], "persistent": false } 

background.js:

chrome.runtime.onStartup.addListener(function() { 
chrome.storage.local.clear() 
}) 

chrome.storage.local.clear

chrome.runtime.onStartup

Event Pages

+0

啊,是的,這很有道理。爲了澄清,我必須使用google.storage,但他們沒有會話存儲選項,所以我必須通過刪除每個啓動時的本地存儲實現我自己的會話存儲? – sbru

+0

是的,這是正確的。 –

+0

我對這個結構有些困惑。我要去的流程是去域的任何子域我運行一些計算和存儲數據(通過chrome.storage.local),然後當我去任何其他子域下的域我可以訪問數據(通過chrome.storage.local)在該頁面的內容腳本中。存儲數據的代碼是在background.js中,還是我不理解? – sbru

相關問題