0
私は現在、私の背景と私のcontentscriptとのコミュニケーションに問題があります。問題は、それらが通信できることですが、非同期であるようです。バックグラウンドとcontentscriptの間でメッセージを同期させる方法は?
私のコードを教えてください。
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";
}
}
});
yourToolbar.jsは、本当の問題は、私は、ツールバーを非表示にすると、ツールバーは1つだけ多くのリフレッシュ後disapearということです。だから、コミュニケーションが最新ではないようです...私はコンソールに "有効"という値を表示すると良い値を示していますが、yourtoolbar.jsの状態が "活性化"の前の値をテストしていることが明らかです
誰かがアイデアを持っていますか?
EDIT:一つの奇妙な...私はちょうど条件の前にアラートを追加する場合、それは完璧に動作していることである、と考えて
alert(ocalStorage['activated']);
if (ocalStorage['activated']== "show")
{
OK感謝を! それでは、それはそれ以上の解決策ではありませんか?私たちはスレッドのようにwait_condの並べ替えを行うことはできませんか? – Sindar
@Sindarすぐには何もありません。コールバックを使用することはそれほど悪くはありません。プログラムのワークフローを変更するだけです。 – serg