如何解决扩展错误未经检查的runtime.lastError:无法建立连接接收端不存在
当我从内容脚本向后台脚本发送数据并等待响应时,更改标签时出现错误。 当我处于同一选项卡上时,直到从后台脚本得到响应,一切都很好。
错误信息: 未经检查的runtime.lastError:无法建立连接。接收端不存在。
content.js:
window.addEventListener('load',(event) => {
GetBgScriptStatus();
});
/* WORK with background scripts */
function GetBgScriptStatus() {
var message = { request: "GetBgScriptStatus" };
SendMessageToBackgroundScript(message);
console.log("send to bg script: " + message.request);
}
function SendMessageToBackgroundScript(message) {
chrome.runtime.sendMessage(message,function (response) {});
}
chrome.runtime.onMessage.addListener(
function (request,sender,sendResponse) {
var message = request;
if (message.context != null || message.request != null) {
if(message.context == "AnswerFromBgScript"){
console.log("response from bg script: " + message.data);
}
}
});
background.js:
chrome.runtime.onMessage.addListener(
function(request,sendResponse) {
var message = request;
if(message.request === "GetBgScriptStatus")
{
let timeDelay = 4000;
const interval = setTimeout(function(){
var messageForMainScript = {context: "AnswerFromBgScript"};
SendMessageToMainScript(messageForMainScript);
},timeDelay);
}
});
function SendMessageToMainScript(messageForMainScript)
{
// Send message to content script
chrome.tabs.query(
{active: true,currentWindow: true},function(tabs)
{
chrome.tabs.sendMessage
(
tabs[0].id,messageForMainScript,function(response)
{
//console.log(response.farewell)
}
)
}
)
// .END (Send message to content script)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。