динамически обновлять содержимое popup.html

Я отправляю сообщение из contentscript во всплывающее окно и пытаюсь показать полученное сообщение при нажатии на расширение.

введите здесь описание изображения

Я вижу, что сообщение получено только тогда, когда я Проверяю всплывающее окно
enter image  описание здесь

contentscript.js

    console.log("content script");      

    chrome.runtime.sendMessage("hello",function(response)
    {
        console.log("sending message");        
    });

popup.js

console.log("popup script");   

function onReq(request, sender, sendResponse)
{
  ph=request;
    console.log("msg: "+request);
  document.getElementById("para").innerHTML = "msg: "+request;
}

chrome.runtime.onMessage.addListener(onReq);

всплывающее окно.html

<!doctype html>
<html>
  <head>
    <title>Example</title>

  </head>
  <body>
    <div id="status"></div>
    <p id="para">shows received message here</p>
  </body>
   <script src="popup.js"></script>
</html>

Я хочу получить сообщение и показать сообщение при нажатии, не открывая консоль. Как я могу этого добиться.


person Vinay Potluri    schedule 27.05.2015    source источник


Ответы (1)


Всплывающее окно создается/уничтожается каждый раз, когда вы открываете/закрываете всплывающее окно. Поэтому отправлять сообщения на него, когда он закрыт, не получится. Простым решением было бы сохранить последнее сообщение в chrome.storage и прочитать значение из неожиданно возникнуть.

person levi    schedule 27.05.2015
comment
Каждый раз, когда я открываю новую вкладку и запускаю расширение, по-прежнему отображается предыдущее значение. Как я могу создать разные экземпляры хранилища, чтобы каждая вкладка имела собственное пространство для хранения. - person Vinay Potluri; 08.06.2015
comment
@Vinay Хранилище является общим для всего расширения. Поэтому вам нужно будет хранить сообщения в объекте, где каждое сообщение индексируется по идентификатору вкладки. chrome.tabs API может помочь. - person levi; 08.06.2015
comment
см. здесь - stackoverflow.com/questions/6202953/ - person levi; 08.06.2015