Отправка массива из скрипта контента на фоновую страницу
Я хочу отправить массив из моего скрипта контента на фоновую страницу, чтобы его можно было сохранить и вызвать позже из всплывающего окна с помощью 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
функция. Смотрите дополнительную документацию по передаче сообщений.