0
我目前有一个与我的背景和我的内容的沟通问题。问题是他们可以沟通,但似乎是异步的。如何在后台和内容之间同步消息传递?
让我告诉你我的代码。
yourToolbar.js
chrome.extension.sendRequest({getStatut : "none"}, function(response)
{
console.log('yourToolbar : ' + response.statut);
localStorage['activated'] = response.statut;
});
if (localStorage['activated'] == "show")
{
// injection
}
background.js
chrome.extension.onRequest.addListener(function(request, sender, sendResponse)
{
if(request.getStatut)
{
console.log('Background : ' + localStorage['activated']);
sendResponse({statut : localStorage['activated']});
}
else if(request.modifyToolbar)
{
if (request.modifyToolbar == "hideToolbar")
{
localStorage['activated'] = "hide";
}
}
});
真正的问题是,当我隐藏工具栏,工具栏后1次以上的更新只disapear。所以看起来沟通不是最新的......当我在控制台上打印“激活”的值时,它显示出良好的价值,但显然yourtoolbar.js上的条件测试之前的“激活”值
有人有想法吗?
编辑:一个奇怪的认为是,如果我只是在条件前添加一个通知它完美地工作...
alert(ocalStorage['activated']);
if (ocalStorage['activated']== "show")
{
好,谢谢! 所以他们没有更多的解决方案呢?我们不能像线程那样做一个wait_cond? – Sindar
@Sindar开箱即用。使用回调并不坏,只需要改变你的程序工作流程。 – serg