Не получается подключить 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({/* тело сообщения */});
});
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости