Расширение Chrome: передача сообщений

Я застрял при передаче сообщений в моем расширении Google Chrome.

У меня есть этот popup.js:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.do == 'popup_refreshMessage')
      jQuery('#message').html(request.message);
  }
); 

jQuery('input[type=button]').click(function(){
  chrome.runtime.sendMessage({
    do: "background_start"
  });
});

и этот popup.html:

<html>
<body>
  Message: 
  <div id="message"></div>

  <input type="button" value="Start">
</body>
</html>

Теперь я хочу, чтобы фоновая страница периодически обновляла сообщение в моем всплывающем окне. Итак, background.js выглядит так:

chrome.runtime.onMessage.addListener(
  function(request, sender, sendResponse) {
    if (request.do == 'background_start') {
      var periodicFunc = function() {
        request.callback({
          do: "popup_refreshMessage",
          message: Math.random()
        });
        setTimeout(myFunc, 1000);
      }
    periodicFunc();
  }
});

Но когда я нажимаю кнопку, ничего не происходит, и в консоли появляется «Uncaught TypeError: Cannot call method 'addListener' of undefined».

Как я могу написать фоновую страницу для периодического обновления HTML во всплывающем окне? Спасибо.


person nanuqcz    schedule 24.04.2013    source источник
comment
Используете Chrome 25-?   -  person Rob W    schedule 24.04.2013
comment
Спасибо, замена chrome.runtime.* на chrome.extension.* работает :-)   -  person nanuqcz    schedule 24.04.2013