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

Javascript 扩展错误。未选中的runtime.lastError:无法建立连接。接收端不存在,javascript,tabs,runtime-error,opera,Javascript,Tabs,Runtime Error,Opera,当我将数据从内容脚本发送到后台脚本并等待响应时,更改选项卡时出错。 当我在同一个选项卡上,直到我从后台脚本得到响应,一切都很好 错误信息: 未选中的runtime.lastError:无法建立连接。接收端不存在 content.js: window.addEventListener('load', (event) => { GetBgScriptStatus(); }); /* WORK with background scripts */ function GetBgScri

当我将数据从内容脚本发送到后台脚本并等待响应时,更改选项卡时出错。 当我在同一个选项卡上,直到我从后台脚本得到响应,一切都很好

错误信息: 未选中的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);
            }
    }
});
chrome.runtime.onMessage.addListener(
  function(request, sender, 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)
    
}
background.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);
            }
    }
});
chrome.runtime.onMessage.addListener(
  function(request, sender, 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)
    
}