Не получается подключить content script с background. Не реагирует.
Делал таким образом:
script.js:
chrome.extension.sendMessage('555555555');
background:
chrome.extension.onMessage.addListener(function(request){
if(request=='555555555')
console.log('Принято: ', request);
});
Что здесь не хватает? Есть ли еще способы общения background
с content_script
и наоборот content_script
c background
?
Самый простой случай.
// content script
chrome.runtime.sendMessage({method: "getGroup"}, function (response) {
if (response.status != null) {
//console.log('ответ пришел')
}
});
// background script
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
//console.log('все сообщения')
if (request.method === 'getGroup') {
//console.log('get groop')
sendResponse({status: 'yes'});
}
});
Такого метода как chrome.extension.sendMessage
не существует. sendMessage
и onMessage
лежат в chrome.runtime
!
В контент-скрипте требуется пробрасывать объект типа Port:
var port = chrome.runtime.connect();
В нем открываем слушатель:
port.onMessage(\* слушатель событий от background-скрипта *\);
В контент-скрипте также доступны объекты document и window - через них меняемся данными со страницей через обычные слушатели. Теперь рассмотрим background-скрипт:
chrome.runtime.onConnect.addListener(function (port) {
port.onMessage.addListener(function (message) {
// работаем с сообщениями от контент-скрипта
});
// и отправляем сообщения в контент-скрипты
port.postMessage({/* тело сообщения */});
});
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вопрос такой - как сделать, чтобы при выполнении такой функции
Имеется массив данных о клиентах, которых необходимо занести на карту в виде точекУ каждого клиента обязательно есть адрес, но может быть...