私が取り組んでいる基本的な Google Chrome 拡張機能があり、localStorage から値を取得する際に問題があります。コンテンツ スクリプトで sendMessage を使用して、バックグラウンド ページから変数を要求しています。応答を受け取ると、応答の後に alert() のようなものを置かない限り、変数は常に「未定義」です...その後、変数には私の値が含まれます。これがなぜなのか、正しく行う方法を理解するのを手伝ってもらえますか? この投稿のコードを作成しました。以下に示します。どうもありがとうございました!
マニフェスト.json
{
"name": "Test Extension",
"version": "1.0",
"manifest_version": 2,
"description": "A test extension.",
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"permissions": [
"tabs", "<all_urls>"
]
}
content.js
alert('content');
var color;
chrome.extension.sendMessage({greeting:"color"},function(response){color = response.farewell;});
// alert('pause'); // uncommenting this line lets me get the value...why?
alert('content - ' + color);
background.js
alert('background');
localStorage["color"] = "lightblue";
var color = localStorage["color"];
alert('background - ' + color);
chrome.extension.onMessage.addListener(function(request,sender,sendResponse)
{
if (request.greeting == "color") {sendResponse({farewell:color});}
});
助けてくれてありがとう!:)