帮助Chrome扩展消息传递

时间:2010-08-27 22:04:46

标签: javascript google-chrome google-chrome-extension

我正在尝试从我在制作的Google Chrome扩展程序中将一系列值从背景页面添加到我的内容脚本。

我遇到的问题是,当我尝试获取内容脚本的值时,它不会。这是代码

var list1 = "";
chrome.extension.sendRequest({action: 'list'}, function(response) {
      list1 = response.data;
   alert("hey from inside:" + list1 +":"+response.data);
});
alert(list1);

出现的第一个警报显示正确地说“嘿从里面”和我想要内容脚本的列表。但是,当我尝试从该请求之外提醒我存储它的变量时,它不会显示该列表。

请帮忙

1 个答案:

答案 0 :(得分:3)

Chrome扩展程序API的大多数(如果不是全部)都是asynchronous。当sendRequest被解雇时,将触发警报。在这种情况下,它将是一个空字符串。由于此list1性质,您无法保证asynchronous的投放。

现在,您可以做的是重新设计代码,以便您可以利用异步问题。例如:

content_script.js

chrome.extension.sendRequest({action: 'list'}, function(response) {
   onListReceived(response.data)
});

function onListReceived(list) {
  alert(list);
}