На мою веб-страницу внедрен следующий скрипт, который выполняется:
console.log("Injected script is running");
console.log(extensionID);
chrome.runtime.sendMessage(extensionID, {test: test}, function(response) {
});
, где extensionID - это идентификатор расширения моего расширения.
Когда это происходит, я получаю следующая ошибка:
Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.
Насколько я понимаю, это происходит из-за того, что сообщение никуда не отправляется, или оно не может подключиться к расширению или чему-то еще.
Это чрезвычайно непонятно, как я должен это слушать. Я пытаюсь следовать руководству по адресу https://developer.chrome.com/extensions/messaging, но крайне неясно, на какой странице должны быть c блоки кода.
Должен ли я слушать фоновая страница? Или в сценарии содержимого?
Я хочу, чтобы сообщение было получено сценарием содержимого.
Добавление следующего прослушивателя на мою фоновую страницу или сценарий содержимого не работает :
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log("background.js got a message")
console.log(request);
console.log(sender);
sendResponse("bar");
}
);
Я прочитал и попытался реализовать несколько руководств, описывающих это, но мне так и не удалось передать сообщение со страницы в расширение.