我正在尝试将一串值从后台页面获取到我正在制作的 Google Chrome 扩展程序中的内容脚本。
我遇到的问题是,当我尝试获取内容脚本的值时,它没有成功。这是代码
var list1 = "";
chrome.extension.sendRequest({action: 'list'}, function(response) {
list1 = response.data;
alert("hey from inside:" + list1 +":"+response.data);
});
alert(list1);
出现的第一个警报正确地显示了“嘿,来自内部”以及我希望内容脚本具有的列表。但是,当我尝试从该请求外部警告我存储它的变量时,它不会显示列表。
请帮忙
最佳答案
大多数(如果不是全部)Chrome 扩展 API 都是异步
。当您的 sendRequest
被触发时,警报将被触发。在这种情况下,它将是一个空字符串。由于这种异步
性质,您无法保证list1
的交付。
现在,您可以做的是重新构建代码,以便可以利用异步问题。例如:
content_script.js
chrome.extension.sendRequest({action: 'list'}, function(response) {
onListReceived(response.data)
});
function onListReceived(list) {
alert(list);
}
关于javascript - 帮助 Chrome 扩展消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3588438/