こんばんはー
以下のような感じで、background.js へlocalStorage へのアクセスを依頼するという形で書くと動きますよ。
background.jsからの戻り値は、sendResponse()の引数の値をJSON形式で書いてあげると、content.jsのコールバック関数側で受け取れるようです。
contentscript.js
================
chrome.extension.sendRequest({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
background.js
=============
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello"){
// ここに localStorage へアクセスするコードを書く
var result = localStorage...;
sendResponse({resule: result});
}
});
background.js へのリクエストが多くなると、chrome.extension.onRequest.addListener内での if の分岐が多くなって、ごちゃごちゃして嫌なので、私は background.js 側に server オブジェクトを用意して、そちらに処理の内容を書くようにし、addListener 内で以下のようにスイッチするように書いています。
background.js
=============
//
// onRequest handler
//
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse){
if(sender.tab){
}
});
//
// server object
//
var server = {
foo: function(request, sender, sendResponse){
sendResponse({});
},
bar: function(request, sender, sendResponse){
sendResponse({});
}
)
content.js 側では以下のように、background.js の server.foo 関数を呼び出します。
contentscript.js
================
chrome.extension.sendRequest({
name : "foo"
}, function(response){
// response を使った処理
...
});
参考までに。
No...@FireDictionary.com