Как запустить фоновый скрипт расширения chrome при каждой загрузке страницы? - PullRequest
0 голосов
/ 25 сентября 2019

Я создал фоновый скрипт, который запускается на короткие клавиши и нажимает на значок расширения, но теперь я хочу запускать его при каждой загрузке веб-страницы.

1 Ответ

0 голосов
/ 26 сентября 2019

Фоновый скрипт уже загружается при каждом запросе страницы.Если вы хотите обновить данные между фоновым скриптом и скриптом контента в фоновом процессе, вам нужно создать двух слушателей, второй будет полезен, когда открыто несколько вкладок.Помните, что данные в вашем всплывающем окне можно получить, просто вызвав chrome.extension.getBackgroundPage()

background.js

chrome.tabs.onUpdated.addListener(() => {
  chrome.tabs.sendMessage(info.tabId, {
    message: 'DO_SOMETHING_MESSAGE'
  });
})

chrome.tabs.onActivated.addListener(() => {
  chrome.tabs.sendMessage(info.tabId, {
    message: 'DO_SOMETHING_MESSAGE'
  });
})

content.js должен работать примерно так:

const processContent = () => {
  // do whatever here.
  let data = {message: UPDATE_BACKGROUND_DATA}
  chrome.runtime.sendMessage(data);
}

// run when messages sent from background.js
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.message === 'DO_SOMETHING_MESSAGE') {
    processContent();
  }
});

// run onload
processContent();

И, наконец, вернитесь в фоновый скрипт и создайте прослушиватель, который прослушивает любые обновленные данные.

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  if (msg.message === UPDATE_BACKGROUND_DATA) {
    // update background vars
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...