0

所以,我正在制作这个需要与另一个扩展程序通信的 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 尝试了相同的代码,得到了相同的结果

请帮忙

4

1 回答 1

0

第一个扩展(发送消息)必须在第二个扩展(接收消息)之后加载。这很明显:当它们以相反的顺序加载时,发送方会在接收方创建之前发送一条消息。

于 2012-07-03T21:48:43.643 回答