📜  chrome.runtime.sendmessage - Javascript (1)

📅  最后修改于: 2023-12-03 14:59:55.770000             🧑  作者: Mango

chrome.runtime.sendMessage - JavaScript
简介

chrome.runtime.sendMessage 是一个用于在 Chrome 扩展程序中发送消息的 API 方法。它允许扩展程序中的不同组件(例如扩展程序页、背景页和内容脚本)之间相互通信。

语法
chrome.runtime.sendMessage(extensionId, message, options, callback)
参数
  • extensionId (可选): 接收消息的扩展程序的 ID。如果未指定,则消息将发送到当前扩展程序自身。
  • message: 要发送的消息对象,可以是任意 JavaScript 对象或原始值。
  • options (可选): 用于消息发送的选项。具体选项参考这里
  • callback (可选): 当消息发送成功时将调用的回调函数。
返回值

chrome.runtime.sendMessage 方法返回一个值,默认情况下为 undefined。不过,可以在第三个参数 options 中设置 chrome.runtime.sendMessage 的返回值属性 sendResponse 字段为 true,从而允许接收消息的回调函数返回一个响应。

示例

以下示例演示了如何使用 chrome.runtime.sendMessage 发送消息:

// 发送消息
chrome.runtime.sendMessage("extensionId", {data: "Hello from content script!"}, function(response) {
  console.log(response);
});

// 接收消息
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  console.log(message);
  if (message.data === "Hello from content script!") {
    sendResponse({response: "Hello from background page!"});
  }
});
注意事项
  • chrome.runtime.sendMessage 只能在扩展程序的不同组件之间发送消息,它不能用于与网页或其他域中的 JavaScript 交互。
  • 接收消息的组件需要使用 chrome.runtime.onMessage 监听器来接收消息,并决定是否需要给发送方发送回应。

请记住将相关代码片段按照 Markdown 格式进行标记。