如何从chrome扩展程序向另一个扩展程序发送消息?

时间:2012-07-03 21:24:39

标签: javascript google-chrome google-chrome-extension

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

请帮忙

1 个答案:

答案 0 :(得分:0)

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