LINUX.ORG.RU

Отправить message из background-скрипта в content-скрипт (расширение Opera)

 oex


0

1

В хроме это делается через такую конструкцию:

content_script.js:
  chrome.extension.sendRequest(
    {
      type: "check",
      data: getDomain() // see also document.location.href
    }, function(response) {
      console.log("Background said: " + response.result + " " + document.location.href);
      if (response.result == "y") {
      }
  });
background.js:

chrome.extension.onRequest.addListener(
  function (request, sender, sendResponse) {
    if(request && request.type == "check") {
      console.log("recv: " + request.data);
      sendResponse({
        result: check(request.data)
      });
    }
  }
);
А в Опере, похоже onRequest+sendRequest нету. Для background-скрипта есть только opera.extension.broadcastMessage(), см. http://stackoverflow.com/questions/11456040/why-cant-post-messages-between-ba...

Для p2p-обмена между вкладкой и background-скриптом, мне придётся делать свой мини-протокол обмена через броадкасты?

★★★★★

В общем, разобрался. Из background-скрипта надо отправлять обратно так:

background.html:
opera.extension.onconnect = function(event) { event.source.postMessage("y"); };
(через event.source)

pacify ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.