Chrome - передача сообщений - от всплывающего клика до контекстного скрипта на конкретной вкладке - PullRequest
0 голосов
/ 22 сентября 2018

Можете ли вы сказать мне, почему следующий код не работает.Вот мой код:

Popup.js (не сценарий backgorund):

chrome.tabs.create({url: url}, function(tab) {
        chrome.tabs.executeScript(tab.id, {file: 'connect.js', allFrames:true}, function() {
            chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
        });
    });

сценарий содержимого:

chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    console.log(message);
    // Handle message.
    // In this example, message === 'whatever value; String, object, whatever'
});

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

{
    "name": "AN App",
    "version": "1.0",
    "description": "To connect",

    "permissions": [
        "storage", 
        "activeTab", 
        "tabs", 
        "https://*/*"],

    "browser_action": {
        "default_popup": "popup.html"
    },

    "content_scripts": [{
        "matches": ["https://*/*"],
        "js": ["connect.js"]
    }],
    /*
    "background": {
        "scripts": ["background.js"]
    },*/

    "manifest_version": 2
}

Я не понимаю, отладка консоли во вкладке ничего не показывает ...

Я также пытаюсь из всплывающего окна в фон, а затем из фона во вкладку, но ничего не происходитни один (я совсем новичок в расширении Chrome, поэтому я надеюсь, что вы можете мне помочь)

Спасибо,

С уважением

Мартин

1 Ответ

0 голосов
/ 24 сентября 2018

Я нашел решение.Когда я вызываю chrome.tabs.create из JS внутри всплывающего окна, он закрывает код, работающий во всплывающем окне, и сообщение никогда не отправляется.

Поэтому вместо вызова chrome.tabs.create внутри JS, связанного свсплывающее окно, я просто отправляю сообщение в фоновый скрипт, вызов фонового скрипта chrome.tabs.create (как это работает в фоновом режиме, и код не останавливается от выполнения).

И затем функция сообщенияработает правильно, как говорит Chrome Doc.

Martin

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