Расширение Chrome: активируйте и запускайте background.js по клику из popup.js - PullRequest
0 голосов
/ 28 августа 2018

Как я понял из Управление событиями с помощью фоновых сценариев и Миграция в фоновые сценарии, управляемые событиями фоновый сценарий должен быть активирован, когда события сработали.

background.js

chrome.runtime.onMessage.addListener((message, sender, reply) => {

    const json = message.data;
    // some code

    reply({ result: true })
    return true;    
});

popup.js

chrome.runtime.sendMessage({ data: [<ArrayWithData>] },
    function (response) {
        logger.log(response);
    }
);

Все работает хорошо, но только при активном фоне.

Почему фон не становится активным? Может кто-нибудь объяснить, в чем моя ошибка? Или как я могу активировать и запускать background.js по клику из popup.js ?

Я знаю, что если я изменю persistence: true в manifest.json или просто удаляю его, все будет работать нормально. Но я хочу сохранить persistence false и запускать background.js при необходимости.

1 Ответ

0 голосов
/ 11 апреля 2019

Вы пропустили эту часть в документации , которая объясняет, как следует активировать фоновый скрипт из popup.js. После получения объекта фоновой страницы вам просто нужно вызвать любую функцию или даже получить доступ к полю.

Я всегда ставлю это наверху моего popup.js:

// Initialize background page
chrome.runtime.getBackgroundPage(function(backgroundPage) {
  console = backgroundPage.console;
})

Таким образом, я также могу просматривать журналы консоли из всплывающего окна вместе с журналами из фонового представления

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