小编vit*_*ets的帖子

chrome.runtime.sendMessage 在扩展的后台页面内

我想在我的扩展程序的后台页面内的组件之间使用 chrome 消息传递。但它的工作原理很奇怪。

这有效

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  console.log('message received', request);
});

chrome.runtime.sendMessage('test1');
Run Code Online (Sandbox Code Playgroud)

但是当我向chrome.runtime.sendMessage它添加回调时它不起作用

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  console.log('message received', request);
  sendResponse(123);
});

chrome.runtime.sendMessage('test2', function(data) {
  console.log('resp:', data, chrome.runtime.lastError);
});
Run Code Online (Sandbox Code Playgroud)

并且 lastError 包含无法建立连接。接收端不存在

有人可以解释这种奇怪的行为吗?

更新:
从 Chrome 49 开始,问题中的任何片段都不起作用,因为第一个片段起作用的事实是一个错误 (crbug.com/479425) 感谢rob-w

google-chrome-extension

5
推荐指数
0
解决办法
1244
查看次数

标签 统计

google-chrome-extension ×1