Отправка массива из скрипта контента на фоновую страницу

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

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

<html>
<head>
    <script>

      function onRequest(request, sender, sendResponse) {

        chrome.pageAction.show(sender.tab.id);
        sendResponse({});
      };

      chrome.extension.onRequest.addListener(onRequest);

    </script>
  </head>
</html>

Мой скрипт содержимого выполняет несколько простых регулярных выражений, и если он находит совпадение, отвечает:

chrome.extension.sendRequest({}, function(response) {});

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

Спасибо за вашу помощь. Это моя первая публикация здесь, хотя я давно получаю пользу от вопросов и ответов других:)

1 ответ

Решение

Предполагая, что ваш массив совпадений называется matches, ваш контент-скрипт может использовать что-то вроде:

chrome.extension.sendRequest({matches: matches}, function(response) {});

Затем на фоновой странице вы можете извлечь массив совпадений из запроса:

function onRequest(request, sender, sendResponse) {
  var matches = request.matches;
  // do stuff with the matches array here
  sendResponse({});
};

Как правило, все данные, которые вы вводите в request аргумент chrome.extension.sendRequest будет передан вашему onRequest функция. Смотрите дополнительную документацию по передаче сообщений.

Другие вопросы по тегам