2016年更新:
Google ChromeがストレージAPIをリリースしました:http : //developer.chrome.com/extensions/storage.html
他のChrome APIと同様に簡単に使用でき、Chrome内の任意のページコンテキストから使用できます。
// Save it using the Chrome extension storage API.
chrome.storage.sync.set({'foo': 'hello', 'bar': 'hi'}, function() {
console.log('Settings saved');
});
// Read it using the storage API
chrome.storage.sync.get(['foo', 'bar'], function(items) {
message('Settings retrieved', items);
});
これを使用するには、マニフェストで定義してください。
"permissions": [
"storage"
],
「remove」、「clear」、「getBytesInUse」、および変更されたストレージ「onChanged」をリッスンするイベントリスナーのメソッドがあります。
ネイティブlocalStorageの使用(2011からの古い返信)
コンテンツスクリプトは、拡張ページではなく、ウェブページのコンテキストで実行されます。したがって、contentscriptからlocalStorageにアクセスしている場合は、拡張ページのストレージではなく、そのWebページのストレージになります。
ここで、コンテンツスクリプトが拡張ストレージ(オプションページから設定する場所)を読み取るようにするには、拡張メッセージパッシングを使用する必要があります。
まず、コンテンツスクリプトに拡張機能にデータをフェッチするリクエストを送信するように指示します。そのデータは拡張機能のlocalStorageにすることができます。
contentscript.js
chrome.runtime.sendMessage({method: "getStatus"}, function(response) {
console.log(response.status);
});
background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method == "getStatus")
sendResponse({status: localStorage['status']});
else
sendResponse({}); // snub them.
});
その周りのAPIを使用して、一般的なlocalStorageデータをコンテンツスクリプトに取得したり、localStorage配列全体を取得したりできます。
問題が解決したことを願っています。
派手で一般的であるために...
contentscript.js
chrome.runtime.sendMessage({method: "getLocalStorage", key: "status"}, function(response) {
console.log(response.data);
});
background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.method == "getLocalStorage")
sendResponse({data: localStorage[request.key]});
else
sendResponse({}); // snub them.
});