#javascript #google-chrome-extension #message-passing
#javascript #google-chrome-extension #передача сообщений
Вопрос:
Проблема с передачей сообщений в расширениях Google Chrome :
В этом расширении Chrome
Моя всплывающая страница:
chrome.browserAction.onClicked.addListener(getMessage);
getMessage();
function getMessage()
{
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});//getting response from content script
});
}
Страница моего скрипта :
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
else
sendResponse({});
});
Я не получаю никакого ответа от скрипта содержимого.
Правки:
Согласно @serg , я переместил код на фоновую страницу. Но все равно это не работает
Комментарии:
1. да, это идентификатор выбранной в данный момент вкладки
Ответ №1:
У вас не может быть chrome.browserAction.onClicked
прослушивателя, если у вас есть всплывающая страница, прикрепленная к кнопке действия браузера, она не сработает.
- Удалить всплывающее окно, оставить только кнопку
- Переместите все на фоновую страницу.
- Замените
tab.id
наnull
. - Удалите
createFile();
вызов в начале, так как в этом случае он ничего не сделает (сценарий содержимого еще не готов к прослушиванию). - Не используйте оповещения для отладки расширения, используйте
console.log()
.
Комментарии:
1. я отредактировал код до фактического, который у меня работал нормально, пожалуйста, chk