javascript - 帮助 Chrome 扩展消息传递

标签 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);

出现的第一个警报正确地显示了“嘿,来自内部”以及我希望内容脚本具有的列表。但是,当我尝试从该请求外部警告我存储它的变量时,它不会显示列表。

请帮忙

最佳答案

大多数(如果不是全部)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/

相关文章:

css - 页面中的某些 HTML 标记不适用于添加 div

c++ - 谷歌浏览器,本地客户端支持和开发

javascript - 如何检测用户何时打开浏览器?

javascript - 如何从扩展程序中获取当前 chrome 选项卡的 AST?

javascript - 不要在 chrome 扩展中重新加载弹出窗口

javascript - 如何获取我的页面上每个帖子的 id?

javascript - 如何从 Firefox 扩展代码中获取本地 IP

javascript - 动态翻译服务 Ionic 2 Angular 2 ngx-translate

javascript scratchblocks 方形空间

javascript - 复制前事件