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

Я пытаюсь создать расширение, которое в фоновом скрипте открывает указанный URL, а затем отправляет сообщение на указанную вкладку, которая была открыта на стороне скрипта контента, но я получаю сообщение об ошибке, и я неуверен, где я иду не так.

Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.

background.js

let targetTab = "http://google.com"

main();

function main() {
  let active = true;
  let tabId = null;
  let tabUrl = null;
  if (active) {
    chrome.tabs.create({
      url: targetTab,
    }, (tab) => {
      console.log("Tab ID Generated: " + tab.id);
      tabId = tab.id;

      chrome.tabs.query({}, function (tabs) {
        tabs.forEach(tab => {
          console.log(tab.url);
          if (tab.url !== targetTab) {
            chrome.tabs.remove(tab.id);
          }
        })
        console.log("Tab ID Sent: " + tabId);
        chrome.tabs.sendMessage(tabId, {
          tabId,
          tabUrl, 
        }, (response) => {
          console.log(JSON.stringify(response));
        })
      })
    })
  }
}

content.js

chrome.runtime.onMessage.addListener(
    (request, sender, sendResponse) => {
        if (chrome.runtime.lastError) {
            console.log(chrome.runtime.lastError);
        }
        console.log("Got Message");
        sendResponse({message: "hi to you"});
    });
...