Отправка сообщения из фонового скрипта в контентный скрипт при запуске - PullRequest
0 голосов
/ 24 декабря 2018

В настоящее время я пытаюсь передать сообщение из фонового сценария в сценарий содержимого при запуске (т.е. до нажатия значка расширения).

Я пробовал следующее (вдохновлено https://stackoverflow.com/a/23895822/10500893), но, похоже, оно не работает.

background.js

function preloadPopupScript(){
    return new Promise(function(resolve, reject){
        chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
            chrome.tabs.executeScript(tabs[0].id, {file: "popup.js"}, 
function(){
                if(chrome.runtime.lastError){
                    reject(Error("could not preload popup.js :("));
                }else{
                    resolve();
                }
            });
        });
    });
}

chrome.runtime.onStartup.addListener(function(){
    let preloadScript = preloadPopupScript();
    preloadScript.then(function(){

        let lastXHRresponse = chrome.storage.local.get("xhrResponse", 
function(d){
            if(chrome.runtime.lastError){
                console.log("could not find past authentication data!");
                return;
            }

            // GETS TO HERE
            chrome.runtime.sendMessage({status: "hasPreviouslyLoggedIn"});
            checkAccessToken();
            chrome.runtime.sendMessage({status: "checkArtistReleases"});
        });
    });
});

popup.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
    switch(request.status){

        // THE BELOW CASE DOES NOT SHOW ANY SIGNS OF GETTING TRIGGERED
        case "hasPreviouslyLoggedIn":
        case "successfulLogin":
            chrome.browserAction.setPopup({popup: "login_signedin.html"});
            window.location.href = "login_signedin.html";
            hasSignedIn = true;
            chrome.runtime.sendMessage({action: "canCreateAlarm"});
            break;
    }
});

Есть ли какие-либо проблемы с этим кодом или я неправильно реализовал предлагаемое решение в https://stackoverflow.com/a/23895822/10500893?

Большое спасибо заранее !!!

(Также заранее прошу прощения за проблемы со стилем noob, так как я только что поднял JS>. <) </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...