いつものように、私はGoogledこれを公正なビットとメッセージパッシングAPIを読んで、しかし、再び、私はStackOverflowで良い人に頼らなければならなかった。すべてのメッセージが渡されるまで遅延スクリプト?
Google Chrome拡張機能のバックグラウンドページとコンテンツスクリプトの間でメッセージを渡すときに、非同期にする方法はありますか?つまり、メッセージが正常に渡されたことが検出されるまでJavaScriptを遅らせますか?
私は、メッセージ受け渡し機能が、渡されたデータlocalStorage
を利用した直後に機能しています。最初の実行では、データが十分に速く渡されないため、スクリプトは常にエラーになります。
現在、私はsetTimeout(nextFunction, 250);
でこれを回避していますが、値の量とサイズが常に変更されるため、それはほとんどエレガントで実用的な解決策ではありません。値。さらに、私は想像していますが、その時代はブラウザのバージョンとユーザーのシステムに関連しています。
つまり、I は、それが動的である必要があります。
私は
function passMessages(){
chrome.extension.sendRequest({method: "methodName"}, function(response) {
localStorage["lsName"] = response.data;
});
checkPassedMessages();
}
function checkPassedMessages(){
if (!localStorage["lsName"]){
setTimeout(checkPassedMessages, 100); //Recheck until data exists
} else {
continueOn();
}
}
のようなものを検討しているが、私は(少なくとも20の値)のデータのかなり多くを渡す必要があると、率直に言って、それはなどなど!localStorage["lsName1"] && !localStorage["lsName2"]
に実用的ではありませんプラス私もありませんそれがうまくいくかどうかを知る。
誰がどんな考えを持っていますか?
おかげ
更新:はまだ答えは、残念ながら。誰も助けを提供することはできますか? :/
作成しようとしている拡張子の種類は何ですか?それはブラウザのアクションですか? 'Google Chrome拡張機能の背景ページ'と言うと、 'manifest.json'ファイルの' background.page'セクションにインクルードするhtmlの背景ページを意味しますか?バックグラウンドページからコンテンツスクリプトにデータを送信しようとしていますか? –
バックグラウンドページからコンテンツスクリプトにデータを送信しようとしています。 – mythofechelon
また、背景ページはmanifest.jsonファイルに含まれるHTMLファイルです。 – mythofechelon