要解决背景脚本发送的消息未被内容脚本接收的问题,您需要使用 Chrome 的消息传递机制来确保消息的正确传递。下面是一个包含代码示例的解决方法:
在背景脚本中发送消息:
// 在背景脚本中发送消息
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {message: "Hello from background script"});
});
在内容脚本中接收消息:
// 在内容脚本中接收消息
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.message === "Hello from background script") {
console.log(request.message);
// 在这里处理接收到的消息
}
});
上述代码通过使用 chrome.tabs.sendMessage
在背景脚本中发送消息,并使用 chrome.runtime.onMessage
在内容脚本中监听消息。当内容脚本接收到来自背景脚本的消息时,会触发监听器,并在控制台打印出消息内容。您可以在监听器中添加您希望执行的代码来处理接收到的消息。
请确保背景脚本和内容脚本都已正确注册,并且符合您的需求。如果仍然无法解决问题,请确保您的代码中没有其他潜在的错误,并检查 Chrome 的开发者工具中是否有任何错误消息。
下一篇:背景脚本发送多个消息