我正在尝试从我在制作的Google Chrome扩展程序中将一系列值从背景页面添加到我的内容脚本。
我遇到的问题是,当我尝试获取内容脚本的值时,它不会。这是代码
var list1 = "";
chrome.extension.sendRequest({action: 'list'}, function(response) {
list1 = response.data;
alert("hey from inside:" + list1 +":"+response.data);
});
alert(list1);
出现的第一个警报显示正确地说“嘿从里面”和我想要内容脚本的列表。但是,当我尝试从该请求之外提醒我存储它的变量时,它不会显示该列表。
请帮忙
答案 0 :(得分:3)
Chrome扩展程序API的大多数(如果不是全部)都是asynchronous
。当sendRequest
被解雇时,将触发警报。在这种情况下,它将是一个空字符串。由于此list1
性质,您无法保证asynchronous
的投放。
现在,您可以做的是重新设计代码,以便您可以利用异步问题。例如:
chrome.extension.sendRequest({action: 'list'}, function(response) {
onListReceived(response.data)
});
function onListReceived(list) {
alert(list);
}