根据从BG页面传递的消息 - chrome扩展,在内容脚本中设置变量

时间:2012-06-05 03:36:25

标签: javascript variables syntax google-chrome-extension message-passing

我已经从我的内容脚本发送了一个请求,并成功收到了我的后台页面的回复。现在我想在我的内容脚本中设置一个变量 - 基于响应。那就是我遇到麻烦的地方。应该足够简单....我想我必须得到错误的语法。这是我的内容脚本中的内容:

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仍未定义。

1 个答案:

答案 0 :(得分:2)

如果你定义:

var wasPolite = '';

之前:

chrome.extension....

并且它仍然没有提示正确的值然后我会问 chrome.extension.sendRequest()函数是否异步?如果是这样,您可能会在请求有时间回拨之前警告wasPolite。 @Rupup可能在轨道上表明,在sendRequest实际完成后,wasPolite将只有它的值,从而触发回调