popup.js не принимает сообщения Chrome Extension

255
30 января 2018, 11:55

Пробую так background.js

принимаю сообщения от popup.js (работает)

        chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
            console.log('chrome.runtime.onMessage');
            console.log(request);
            if (request&&request.method&&request.action) {
                if($.isFunction(getLr()[request.method][request.action])) {
                    sendResponse(getLr()[request.method][request.action](request.data?request.data:undefined));
                } else {
                    sendResponse(getLr()[request.method][request.action]);
                }
            }
        });

высылаю дынные в popup (не работает)

    chrome.tabs.query({active: true}, function(tabs){
        for(let t in tabs) {
            chrome.tabs.sendMessage(tabs[t].id, $.extend({}, {method: method}, data), callback);
        }
    });

popup.js

высылаю в background.js (работает)

chrome.runtime.sendMessage({method: method, action: action, data: data}, callback);

принимаю от background (не работает)

window.onload = function () {
    chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
        console.log('chrome.runtime.onMessage');
    });
};

что я делаю не так?

Answer 1

Для того, чтобы принять данные в popup - окно должно отображаться (читайте существовать).

Для отправки сообщения попапу необходимо использовать метод chrome.runtime.sendMessage.

READ ALSO
Проверка на правильность

Проверка на правильность

Привет, мне надо было сделать функцию, которая будет принимать любое кол-во чисел и возвращать их произведениеЕсли аргументы отсутствуют,...

239
Вывести Unicode-значения каждого символа строки через пробел

Вывести Unicode-значения каждого символа строки через пробел

Подскажите пожалуйста, как создать функцию, которая принимает строку на вход и возвращает другую строку, состоящую из Unicode-значений символов...

329
Условные операторы: if, '?' [дубликат]

Условные операторы: if, '?' [дубликат]

На данный вопрос уже ответили:

220