Расширение Chrome Обмен сообщениями между BackgroundScript и ContentScript - PullRequest
0 голосов
/ 28 сентября 2018

Я учусь писать расширения Chrome, и у меня возникают проблемы с API обмена сообщениями.Я нашел сообщение , связанное с *1001* *, но я не могу получать или получать уведомления от сообщений, отправленных с помощью BackgroundScript.

Вот мой код:

manifest.json

{
    "manifest_version": 2,
    "name": "z-context++",
    "version": "2.0.1",
    "devtools_page": "devtools/index.html",
    "icons": {
        "16": "icons/icon_16.png",
        "48": "icons/icon_48.png",
        "72": "icons/icon_72.png",
        "96": "icons/icon_96.png",
        "128": "icons/icon_128.png",
        "144": "icons/icon_144.png",
        "192": "icons/icon_192.png"
    },
    "background": {
    "scripts": ["devtools/eventPage.js"],
    "persistent": false
  },
    "content_scripts": [
      {
      "matches": [
          "http://*/*",
          "https://*/*"
          ],
      "js": ["devtools/contentScript.js"],
      "run_at": "document_end"
      }
  ],
    "permissions": [
    "tabs",
    "activeTab",
    "http://*/*",
    "https://*/*",
    "*://*/*"
  ]
}

eventPage.js

var eventPage = new (function() {
    function init() {

        var page = chrome.extension.getBackgroundPage();

        // chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
        //   if (request.asking === "login"){
        //     console.log('got msg from popup.js');
        //     return;
        //   }
        // });

        page.console.log("HELLO!");

        chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
           chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {});
        });

    };

    init();
})();

contentScript.js

new (function() {
    function init() {

        document.addEventListener("DOMContentLoaded", function(event) {
          console.log({'z_context': z_context()})
        });

        chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
            alert("*** MESSAGE RECEIVED ***")
            console.log({'ON_MESSAGE': message});
        });


    }

    init();
})();

Может ли кто-нибудь еще помочь мне увидеть, что мне не хватает?Я хочу , чтобы иметь возможность запускать сценарии в eventPage.js на основе событий содержимого, таких как document.ready и обновление страницы.Есть функция, которая анализирует DOM для контекста z-контекста / стека, и я хочу отправить данные этого свойства в скрипт контента, чтобы я мог выделить вещи на странице.

ПРИМЕЧАНИЕ. Я разрываю проект githubдля z-контекста, поэтому я не включил функцию zContext (), потому что это не мой код и потому что я не думаю, что это связано с моей неправильной отправкой сообщений между скриптами.

Любая помощь будетБуду очень признателен!

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