📅  最后修改于: 2023-12-03 14:59:55.770000             🧑  作者: Mango
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 格式进行标记。