在后台脚本之间进行通信

时间:2017-12-15 19:07:46

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

现在开发谷歌浏览器扩展已经有一段时间了,我一直很好奇两个background scripts如何在彼此之间进行通信(最近遇到过这个有用的实例)。他们无法使用chrome.runtime发送消息,因为该方法用于向内容脚本发送消息,而其他后台页面不会捕获这些消息。

所以说我有两个脚本作为后台脚本运行,其中一个:

chrome.runtime.sendMessage({type:"hi"});

然后在第二个后台脚本中:

chrome.runtime.onMessage.addListener(function (message, sender, sendResponse){
    if (message.type == "hi"){
        console.log("SAID HI");
    }
});

第二个脚本没有收到消息,我猜测是因为它好像是两个脚本组合在一起而且组合脚本正在与自己通信(这很愚蠢,显然不会工作)。

因此,如果我不想将所有代码都放在一个文件中,这将是一个简单的解决方案,那么让脚本进行通信的好方法是什么?或者我可能在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

任何一个脚本中定义的全局变量和函数都可以在任一个脚本中调用/访问 - 就好像它们是一个脚本一样。

来源:刚才原始问题,试验和错误中的评论