актуализирайте съдържанието popup.html динамично

Изпращам съобщение от contentscript до popup и се опитвам да покажа полученото съобщение, когато се щракне върху разширението.

въведете описание на изображението тук

Виждам, че съобщението се получава само когато Проверя изскачащ прозорец
въведете изображение  описание тук

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);

popup.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 Хранилището се споделя в цялото разширение. Така че ще трябва да съхранявате съобщенията в обект, където всяко съобщение е индексирано от ID на раздела. chrome.tabs API може да бъде от помощ. - person levi; 08.06.2015
comment
вижте тук - stackoverflow.com/questions/6202953/ - person levi; 08.06.2015