如何将消息从后台脚本发送到扩展线程/进程

时间:2018-01-01 08:24:54

标签: google-chrome-extension

好的,所以我在manifest.json文件中有这个:

  "background": {
    "scripts": ["background.js"],
    "persistent": true
  },

在我的background.js脚本中我有这个:

chrome.runtime.onConnect.addListener(function(port) {
  port.onMessage.addListener(function(msg) {

    // now, I want to forward `msg` to the extension process itself

  });
});

如上所示,我想将后台脚本中的消息发送到我的扩展程序。

使用以下方法是正确的方法: https://developer.chrome.com/extensions/messaging#connect

所以我想我在background.js中执行此操作:

var port = chrome.runtime.connect('my-extension-id');
port.postMessage('foo');

我猜我的后台脚本已经有了某种默认的连接/通道扩展,我是否必须手动设置它?我想如果我想在不同的扩展中进行通信,我只需要手动设置它。

更新 我现在在background.js

中有这个
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
  console.log('background.js received a message');
  sendResponse({farewell: "goodbye"});
  sendResponse({farewell: "goodbye"});
  sendResponse({farewell: "goodbye"});
  sendResponse({farewell: "goodbye"});
});

看起来sendResponse只能被调用一次。我需要打开一个持久的" background.js和弹出窗口之间的连接,以便我可以随时间传输多条消息。

0 个答案:

没有答案