Chrome 消息传递.未捕获错误:连接到扩展时出错

Chrome Message passing. Uncaught Error: Error connecting to extension

本文关键字:连接 扩展 出错 错误 消息传递 Chrome      更新时间:2023-09-26

所以我对Chrome的消息传递非常陌生,我正在尝试使用它来在修改页面的DOM时提醒我的后台页面(使用一些注入的js)。

我只是想进行单向通信,但是如果我在扩展运行时打开选项卡上的控制台,它会告诉我"未捕获的错误:连接到扩展 [我的扩展 ID] 时出错"。

为简单起见,我会说我的背景页面的背景.js有以下几行代码:

chrome.runtime.onMessage.addListener(
  function(){
    if (modified == "true") {
      alert("modified message recieved");
      fourth();
    }
  }
);

我的内容脚本是:

function subtreeModified(){
  chrome.runtime.sendMessage({modified: "true"});
  alert("modified message sent");
}
document.addEventListener("DOMSubtreeModified", subtreeModified, false);

我一直在测试这个,每当页面 DOM 被修改时,我都会收到一堆警报,上面写着"已发送修改的消息",但没有一个说"已收到修改的消息"。想法/提示?

您没有声明和使用发送到接收方的事件侦听器的参数。 modified参数作为传递给回调的参数的属性发送。 这就是使用代码时必须从中获取它的地方。 另外,我在回调的开头添加了一个console.log(),以便您可以查看它是否被调用:

chrome.runtime.onMessage.addListener(function(message) {
    console.log("received message");
    if (message.modified == "true") {
        alert("modified message recieved");
        fourth();
    }
});

注意:传递真假字符串有点奇怪。 为什么不直接使用布尔值?