在background.js中发送消息时,使用chrome.tabs.sendMessage实现单次消息发送。然后,在content.js中使用chrome.runtime.onMessage.addListener监听消息。使用一个唯一的标识符来分辨新消息和旧消息。 这样可以避免重复消息的问题。
示例代码:
background.js
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, { msg: "hello" });
});
content.js
var hasReceived = false;
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
if (!hasReceived && request.msg === "hello") {
hasReceived = true;
// 执行操作
}
});