我想在我的扩展程序的后台页面内的组件之间使用 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。