Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CHROME扩展-2个内容脚本和1个后台脚本之间的复杂发送和接收机制_Javascript_Google Chrome - Fatal编程技术网

Javascript CHROME扩展-2个内容脚本和1个后台脚本之间的复杂发送和接收机制

Javascript CHROME扩展-2个内容脚本和1个后台脚本之间的复杂发送和接收机制,javascript,google-chrome,Javascript,Google Chrome,大家好,所以我想在这里实现的是两个内容脚本之间的通信方式-当我正在做的时候,我意识到这是不可能的,并且 唯一的方法是使用背景脚本作为中间人 顺便说一句,通信应该超过1或2个请求。 我的background.js代码: chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { if (request.for == "bulk_edit") { chrome.runtime

大家好,所以我想在这里实现的是两个内容脚本之间的通信方式-当我正在做的时候,我意识到这是不可能的,并且 唯一的方法是使用背景脚本作为中间人

顺便说一句,通信应该超过1或2个请求。 我的background.js代码:

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.for == "bulk_edit") {
    chrome.runtime.sendMessage(
      { to: "bulk_edit", data: request.data },
      (res) => {
        console.log(res);
      }
    );

    sendResponse({ msg: "Message has been forwarded to bulk edit" });
    return true;
  } else if (request.for == "pic_uploader") {
    chrome.runtime.sendMessage(
      { to: "pic_uploader", data: request.data },
      (res) => {
        console.log(res);
      }
    );

    sendResponse({ msg: "Message has been forwarded to pic uploader" });
    return true;
  }
});
第一个内容脚本的我的代码:

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.to == "pic_uploader") {
    console.log("[PICUPLOADER]");
    console.log(request.data);
    sendResponse({ msg: "[PIC UPLOADER]: Message has been received" });
  } else {
    sendResponse({});
  }
});

const send_message_to_move = () =>
  new Promise((resolve, reject) => {
    chrome.runtime.sendMessage(
      { for: "bulk_edit", data: "next" },
      (response) => {
        console.log(response.msg);
        resolve();
      }
    );
  });
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.to == "bulk_edit") {
    console.log("[BULKEDIT]");
    console.log(request.data);
    sendResponse({ msg: "[BULKEDIT]: Message has been received" });
  } else {
    sendResponse({});
  }
});
第二个内容脚本的我的代码:

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.to == "pic_uploader") {
    console.log("[PICUPLOADER]");
    console.log(request.data);
    sendResponse({ msg: "[PIC UPLOADER]: Message has been received" });
  } else {
    sendResponse({});
  }
});

const send_message_to_move = () =>
  new Promise((resolve, reject) => {
    chrome.runtime.sendMessage(
      { for: "bulk_edit", data: "next" },
      (response) => {
        console.log(response.msg);
        resolve();
      }
    );
  });
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.to == "bulk_edit") {
    console.log("[BULKEDIT]");
    console.log(request.data);
    sendResponse({ msg: "[BULKEDIT]: Message has been received" });
  } else {
    sendResponse({});
  }
});
要求是,我需要能够接收和发送每个脚本,包括内容脚本和后台脚本

但问题是,我总是会犯这样的错误-

未选中的runtime.lastError:无法建立连接。接收端不存在