google-chrome-extension - 两个 Chrome 扩展程序之间的通信

标签 google-chrome-extension

我正在尝试在两个 Chrome 扩展程序之间进行通信,但无法执行此操作。

任何帮助都会很好地解决此问题。

第一个扩展在background.js中发送消息:

chrome.browserAction.onClicked.addListener(
function(tab)
{
    chrome.runtime.onConnect.addListener(function(port)
{
     port.postMessage({status:"hello"});
});

第二个扩展在background.js中接收消息:

var port = chrome.runtime.connect({name: "lkddmaimhocofkfhngkdhdicmldnfdpn"});
port.onMessage.addListener(function(message,sender)
{
  alert('listened bg');
});

最佳答案

看来您对发送部分和接收部分感到困惑。

此外,onConnect 之间也存在一些差异。

which fires when a connection is made from either an extension process or a content script,

onConnectExternal

which fires when a connection is made from another extension.

看看Message External您可以使用以下示例代码在两个扩展之间进行通信。

第一个扩展在background.js中发送消息:

chrome.browserAction.onClicked.addListener(function() {
    var port = chrome.runtime.connect("lkddmaimhocofkfhngkdhdicmldnfdpn");
    port.postMessage(...);
});

第二个扩展在background.js中接收消息:

chrome.runtime.onConnectExternal.addListener(function(port) {
    port.onMessage.addListener(function(msg) {
        // Handle your msg
    });
});

关于google-chrome-extension - 两个 Chrome 扩展程序之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35910446/

相关文章:

css - 实验性 chrome 历史扩展

javascript - 无法使用任何Chrome API来监听事件

Javascript,Chrome 扩展程序 : overriding cookie getter and setter

google-chrome-extension - Chrome 扩展拒绝加载外部脚本

google-chrome-extension - 浏览器扩展和 native 应用程序之间的进程间通信

javascript - 在 chrome 扩展中集成 GA, list v3

api - 保护 google chrome 扩展程序中的代码

css - 如何在 Google Chrome 扩展中真正隔离样式表?

javascript - 我可以编写 chrome 扩展来在页面加载时更改页面或网站的 CSS 吗?

javascript - 防止内容脚本因页面 iframe 而多次加载