在两个chrome后台脚本之间发送消息

问题描述 投票:0回答:1

我有2个后台脚本,一个是background.js,另一个是background.ts,当我在构建文件中构建所有内容时,它看起来像这样: /建造 |-background.js |-助手 |--背景.ts

我想要实现的是我想将 chrome 消息从 .js 发送到 .ts 后台 - 这种通信是否可行? 两个背景都在工作,一切都很好,除了他们之间缺乏沟通。

我尝试将消息从background.js发送到内容脚本,然后发送到background.ts,看起来工作正常,但内容脚本取决于选项卡,我希望在后台脚本之间有直接的通信通道。

google-chrome google-chrome-extension extension-methods
1个回答
0
投票

后台上下文总是只有一个,即使你放了多个脚本文件,它们也会在同一个上下文中执行。就像您可以在页面上放置多个标签一样,它们都将在同一上下文中执行。因此,您不需要任何通信 API(例如 chrome.runtime.sendMessage)来在脚本之间交换数据。在脚本之间交换数据的具体方式取决于您的项目或/和目标,但它实际上更像是一个后台脚本的两块积木,而不是两个独立的实体

如果您想在收到 WS 消息时从 background.ts 文件运行某些函数,您可以将函数导入到 background.js 文件中并调用 WS 消息处理程序。

为此,您需要将

export
关键字添加到 background.ts 中的函数定义中:

export const funcName = () => {...}
// Or
export function funcName() {...}

然后将其导入background.js并作为普通函数使用:

import {funcName} from './path/to/background.ts'
© www.soinside.com 2019 - 2024. All rights reserved.