всплывающее окно с расширением Chrome и фон AJAX - PullRequest
5 голосов
/ 15 марта 2011

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

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

спасибо

1 Ответ

13 голосов
/ 15 марта 2011

Что ж, если вы хотите прослушать изменения на фоновой странице, у вас есть два способа сделать то, что вы хотите.

  1. В вашем всплывающем окне вы можете зарегистрировать chrome.extension.onRequest.addListener на своей всплывающей странице, а на своей фоновой странице вы можете chrome.extension.sendRequest , когда вы получите материал обновлен.
  2. У вас есть прямой доступ к Popup DOM, вы можете получить экземпляр из chrome.extension.getViews ({type: 'popup'}) , и как только вы его получите, вы можете просто вызвать метод в этом DOM. Из всплывающего окна вы также можете легко получить доступ к фоновой странице с помощью chrome.extension.getBackgroundPage () . В обоих случаях возвращается окно DOMWindow.

Лично я бы использовал # 2, потому что вы принадлежите к одному и тому же процессу расширения, вам не нужно связываться с внедренным скриптом содержимого.

var popups = chrome.extension.getViews({type: "popup"});
if (popups.length != 0) {
  var popup = popups[0];
  popup.doSomething();
}

Надеюсь, это поможет.

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