0

コンテンツ スクリプトからリクエストを送信し、バックグラウンド ページから正常に応答を受け取りました。ここで、応答に基づいて、コンテンツ スクリプトに変数を設定したいと考えています。困っているところです。十分に単純なはずです....構文が間違っているに違いないと思います。私のコンテンツスクリプトの内容は次のとおりです。

chrome.extension.sendRequest({greeting: "hello"}, function(response) {
  console.log(response.farewell);
if (response.farewell == "goodbye") {
      wasPolite = "yes";
}
else if (response.farewell == "goaway") {
      wasPolite = "no";
    }
else {
wasPolite = "maybe";
}
});
alert(wasPolite);

コンソールはgoaway応答として表示されますが、wasPoite未定義のままです。

4

1 に答える 1

2

次のように定義した場合:

var wasPolite = '';

の前に:

chrome.extension....

それでも正しい値を警告していない場合、chrome.extension.sendRequest()関数は非同期ですか? その場合、リクエストがコールバックする前に、wasPolite をアラートしている可能性があります。@Ruup はおそらく軌道に乗っており、sendRequest が実際に終了してコールバックがトリガーされた後にのみ wasPolite が値を持つことを示唆しています。

于 2012-06-05T05:14:22.927 に答える