отправить сообщение из фонового скрипта в скрипт контента - PullRequest
0 голосов
/ 16 сентября 2018

В настоящее время я запускаю сценарий chrome extension background.js. Внутри этого скрипта находится асинхронная функция, которая запускается в цикле for. В середине этой функции она переходит к URL-адресу, который затем запускает скрипт содержимого

Вот как выглядит цикл for:

var atc_count = 1;
for (i = 0; i < data.count; i++) {
    console.log("waiting for getItem");
    await getItem(atc_count);
    atc_count++;
}

В настоящее время я запускаю сценарий chrome extension background.js. Внутри этого скрипта находится асинхронная функция, которая запускается в цикле for. В середине этой функции она переходит к URL-адресу, который затем запускает скрипт содержимого

В середине функции я хочу отправить сообщение в скрипт содержимого atc_count, скрипт контента берет atc_count и что-то с ним делает

Вот что я попытался в фоновом скрипте отправить atc_count в скрипт контента:

chrome.tabs.query({ currentWindow: true, active: true }, function(tab) {
  chrome.tabs.update(tab[0].id, { url: color_url }, () => { // tab.id
    chrome.tabs.sendMessage(tabs[0].id, {atc_count: atc_count}, function(response) {
      console.log(response.go);
      resolve("Updated the tab");
    });
  });
});

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

chrome.runtime.onMessage.addListener(
  function(message, sender, sendResponse) {
    console.log(message.atc_count);
    sendResponse({go: "atc done!"});
});

Это не работает.

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

Так что я хочу, чтобы он использовал скрипт контента один раз во время каждого цикла, при этом только atc_count изменялось с использованием каждого цикла.

Пожалуйста, lmk, если вам нужны более подробные разъяснения по моей проблеме.

Спасибо, что нашли время, чтобы прочитать это, и я надеюсь, что вы можете мне помочь. Спасибо <3! </p>

...