Javascript CHROME扩展-2个内容脚本和1个后台脚本之间的复杂发送和接收机制
大家好,所以我想在这里实现的是两个内容脚本之间的通信方式-当我正在做的时候,我意识到这是不可能的,并且 唯一的方法是使用背景脚本作为中间人 顺便说一句,通信应该超过1或2个请求。 我的background.js代码: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
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:无法建立连接。接收端不存在