Не удается связаться через content.js и background.js, после того как я отключил расширение, затем включил его в расширении chrome - PullRequest
0 голосов
/ 27 июня 2018

То, что я пытаюсь сделать, это

Popup.html

В popup.html я создал страницу входа в систему, после того, как пользователь нажал кнопку «Вход», я успешно вошел в систему в то время в локальном хранилище и сохранил свой токен и имя пользователя.

content.js

    chrome.runtime.sendMessage({greeting: "hello"}, function (response) {
            // console.log('Data to Call', response, dialingNumber);
            if (response == undefined || response == null) {
                window.confirm('Please LogIn...!');
            }
            else {
// ....
}  

background.js

chrome.runtime.onMessage.addListener(
        function (request, sender, sendResponse) {
            var credentials = localStorage.getItem('voi-auth').split("|");
            console.log(sender.tab ?
                "from a content script:" + sender.tab.url :
                "from the extension");
            if (request.greeting == "hello")
                sendResponse({farewell: credentials});
        });  

Он отлично работает во время моей первой установки и может вызывать учетные данные, которые я храню в локальном хранилище, из скрипта контента.

Задача

Моя проблема заключается в том, что если я перешел к расширению и отключил расширение, а затем снова включил его, я не могу обмениваться контентом и фоновыми сценариями, при сценарии содержимого ответ не определен, когда я вызываю функцию отправки сообщения, даже если локальное хранилище имеет токен и имя пользователя. Грустная часть, это будет работать нормально, только когда я проверяю background.js и открываю его все время. Это не сработает, когда я закрою всплывающее окно.

Есть ли какое-либо решение, позволяющее избежать этого искажения, например, выполнить фоновую страницу таким образом?

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