所以,我正在制作一个需要与另一个扩展进行通信的Chrome扩展,并且经过大量相互矛盾的信息后我还没有得到任何结果,这是我到目前为止使用的代码:
扩展程序HTML(options.html)之一的发送部分
console.log("sending message...");
chrome.extension.sendRequest(receivingExtensionID, {txt: "sometext"}, function (res){
console.log("response received");
console.log("res: " + res);
try{
console.log("res.txt: " + res.txt);
}catch(e){
console.log("ERROR: cannot print res.txt because res is undefined.");
}
});
console.log("message sent.")
另一个扩展程序的background.html中的接收部分
chrome.extension.onRequestExternal.addListener(function(request, sender, sendResponse) {
sendResponse({txt: "someothertext"});
});
我收到以下错误:
Port error: Could not establish connection. Receiving end does not exist.
我不知道除了详细信息之外还有什么要说的,当你点击调试器上的错误时这就说了:
chromeHidden.Port.dispatchOnDisconnect
我用sendMessage和onMessageExternal尝试了相同的代码,得到了相同的结果
请帮忙
答案 0 :(得分:0)
第一个扩展(发送消息)必须在第二个扩展(接收消息)后加载。这很明显:当它们以相反的顺序加载时,发送方会在创建接收方之前发送消息。