内容脚本和弹出脚本之间的消息传递Chrome扩展

Messaging between content script and popup script in Chrome extension

本文关键字:脚本 消息传递 Chrome 之间 扩展      更新时间:2023-09-26

我试图创建一个弹出式chrome扩展,显示当前页面中DOM的信息,这似乎需要消息传递。我已经能够发送消息到后台,但我需要的数据是特定于当前页面,因为背景是相同的所有弹出窗口/页面。

popup.js中,我在加载DOM时发送消息(应该在单击popup时触发?)

document.addEventListener('DOMContentLoaded', function() {
    chrome.runtime.sendMessage({method: "getTableData"}, function response() {
    });
});

我也有一个监听器在contentscript.js(和background.js用于测试)

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  if(request.method == "getTableData") {
    console.log("table request found!");
  }
});

然后,当我激活弹出窗口时,后台控制台输出table request found!,而当前页面的控制台没有。

谢谢。

您需要使用chrome.tabs.sendMessage而不是chrome.runtime.sendMessage向内容脚本发送消息