Eu tenho 2 scripts de segundo plano, um é background.js e o outro é background.ts quando eu construo tudo dentro do arquivo de construção, parece algo assim: /build |-background.js |-helper |--background.ts
O que eu quero alcançar é enviar uma mensagem chrome de .js para .ts background - essa comunicação é possível? Ambos os antecedentes estão funcionando e tudo está ótimo, exceto a falta de comunicação entre eles.
Tentei enviar mensagem de background.js para o script de conteúdo e depois para background.ts e parece que está funcionando, mas o script de conteúdo depende das guias e gostaria de ter um canal de comunicação direto entre os scripts de segundo plano.
Sempre há apenas um contexto de fundo, mesmo se você colocar vários arquivos de script lá, todos eles serão executados no mesmo contexto. Da mesma forma que você pode colocar várias tags na página e todas elas serão executadas no mesmo contexto. Portanto, você não precisa de nenhuma API de comunicação (como chrome.runtime.sendMessage) para trocar dados entre scripts. Como exatamente você troca dados entre scripts dependerá do seu projeto e/ou objetivo, mas na verdade é mais como dois blocos de construção de um script de segundo plano, em vez de duas entidades separadas
Se você deseja executar alguma função do arquivo background.ts ao receber a mensagem WS, basta importar a função para o arquivo background.js e chamar o manipulador de mensagens WS.
Para fazer isso, você precisará adicionar
export
uma palavra-chave à definição da função em background.ts:E então importe-o em background.js e use como função normal: