Chrome Extension: попытка передать сообщение и как только это сообщение будет получено, запустите функцию

contentscript.js

function createIDArray()
    {
        var IDArray = []; 

        IDArray[0] = $('#u_4_0 > span > div').html();


        return IDArray;
    }

    chrome.runtime.onMessage.addListener(
      function(request, sender, sendResponse) {
        console.log("This is being received from popup.js");
        if (request.greeting == "hello")
          console.log(createIDArray());
          sendResponse({farewell: "goodbye"});
          return true;

      });

всплывающий.js

$('#9610').click
(

    function()
    {
        chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
          chrome.tabs.sendMessage(tabs[0].id, {greeting: "This is data."}, function(response) {
            console.log(response.farewell);
          });
        });
    }
);

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

всплывающий.формат html

<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script src="popup.js"></script>

</head>
<body>
    <button id="9610">Copy SRT Data</button>
    <button id="1691">Paste SRT Data</button>
</body>

декларация.формат JSON

{
  "manifest_version": 2,

  "name": "Task Auto Fill",
  "description": "This extension shows a Google Image search result for the current page",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },

  "name": "My extension",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "https://our.intern.facebook.com/",
    "tabs",
    "activeTab"

  ],
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["myscript.js"]
    }
  ]
}

1 ответ

    1. Пожалуйста, переместите <script>тег в popup.htmlнижней части <body>тега. Пожалуйста, имейте в виду, что в настоящее время вы помещаете их внутрь<head>, и когда $('#9610').click()выполняется, <body>не строится, и вы не найдете кнопку вообще.

    2. Обновление request.greeting == "hello"в вашем contentscript.js. Пожалуйста, держите его синхронизацию с данными, которые вы отправили от popup.js