Связь между страницей и расширением - PullRequest
0 голосов
/ 24 апреля 2018

я разрабатываю свое первое расширение для Chrome.

Я пытаюсь вызвать страницу с моего default_popup.

Я пытаюсь использовать chrome.runtime.onMessage.addListener и chrome.runtime.sendMessage, но это неработа.

Я читаю эту страницу https://developer.chrome.com/apps/messaging,, но я не могу понять, где правильно разместить мой Listiner.

Мне нужно, когда я открываю "всплывающее окно по умолчанию", звонитесо страницы произошло событие, возвращающее что-то в «default_popup».

Дополнительные объяснения:

На самом деле у меня есть content.js в этом content.js, который я могу вызватьbackground.js, вызвав chrome.runtime.sendMessage, но это вызов fast.

DOM страницы не имеет времени для загрузки.Мой content.js внедряет какой-то файл .js в веб-страницу для взаимодействия со страницей.

Есть ли способ, которым я могу вызвать crhome.extension.sendMessage со вставленной страницы?

Любое предложение

1 Ответ

0 голосов
/ 24 апреля 2018

Хорошо, я нашел это.

Мы можем зарегистрировать в background.js событие

chrome.runtime.onMessageExternal.addListener(
 function (request, sender, sendResponse) {
   debugger;
   if (sender.url == blacklistedWebsite)
     return;  // don't allow this web page access
   if (request.openUrlInEditor)
     openUrl(request.openUrlInEditor);
 });

Вам необходимо указать в манифесте правильные правила

"externally_connectable": {
  "matches": ["*://*.example.com/*"]
}

После этого с вашей введенной страницы:

    chrome.runtime.sendMessage(extensionID, { openUrlInEditor: "test" },
  function (response) {
    debugger;
    if (!response.success)
      handleError("est");
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...