chrome插件:content.js、background.js, options.js, popup.js之间的通信

目录

    • content.js 发送消息
    • options.js向background.js传递数据

content.js 发送消息

消息方向:

// content.js 一般不直接与options.js, popup.js 通信,而是与常驻的background.js通信
content.js => [background.js, options.js, popup.js]

发送消息:

// content.js
chrome.runtime.sendMessage({data: 'Hello'})

接收消息:

// background.js, options.js, popup.js
chrome.runtime.onMessage.addListener(function (message){
    console.log(message);
})

接收情况:

// background.js message 
{data: 'Hello'}

// options.js message 
{data: 'Hello'}

// popup.js message 
{data: 'Hello'}

options.js向background.js传递数据

background.js 定义接收函数

// background.js
function onMessage(message) {
  console.log(message);
}

// 注意,如果是模块化打包,需要挂载到全局
window.onMessage = onMessage;


options.js 调用消息接收函数

```js
// options.js
const background = chrome.extension.getBackgroundPage();
background.onMessage({ data: "hello" });

接收到的数据

// background.js message 
{data: 'hello'}

参考文章

  1. 谷歌浏览器插件content_scripts、background、popup之间的通信

你可能感兴趣的:(javascript,chrome,开发语言)