Расширение Chrome: невозможно получить фон для отправки сообщения в контент-скрипт - PullRequest
0 голосов
/ 12 февраля 2019

Вот мой манифест:

{
    "name": "my-app",
    "version": "0.0.9",
    "manifest_version": 2,
    "description": "my App",
    "content_scripts": [
        {
            "matches": [
                "https://*/*"
            ],
            "js": [
                "js/vendors/jquery-3.3.1.min.js",
                "js/content.js"
            ]
        }
    ],
    "background": {
        "scripts": [
            "js/background.js"
        ]
    }
}

и вот мои сценарии:

// background.js
chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
    setInterval(() => {
        chrome.tabs.sendMessage(tabs[0].id, 'some-message');
    }, 3000);
});

// content.js
chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
    console.log('in runtime')
    console.log(msg);
});

chrome.extension.onMessage.addListener(function(msg, sender, sendResponse) {
    console.log('in extensions')
    console.log(msg);
});

Я никогда ничего не регистрирую;что мне здесь не хватает?

1 Ответ

0 голосов
/ 12 февраля 2019

Добавьте это в свой манифест.

"permissions": ["tabs"]

Другая проблема связана с вкладками [0] .id.Идентификатор, полученный после выполнения этого оператора, не совпадает с фактическим идентификатором вашей вкладки в браузере.Чтобы сделать эту работу, выполните эту функцию, когда происходит какое-то событие.Я заставляю ваш background.js отправлять сообщения, когда происходит событие onUpdated.

chrome.tabs.onUpdated.addListener(function(id, changeInfo, tab){
    setInterval(()=>{       
        chrome.tabs.sendMessage(id, "hellooo from background");
    },3000);
});

Обновите расширение Chrome, перейдите на новую страницу, и это должно начать работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...