私はEventListener
と 関数を持っていますgenerator.gettext
。コード:
var generator = {
gettext: function (mytext) {
//I send a message which is intercepted by my content script.
//Later my content script will send a reply back which will be processed by 'receiver'
window.postMessage({
type: "MESSAGE",
text: mytext
}, "*");
while (generatedtext == "") {
//WAIT until generatedtext is set by 'receiver'
}
return generator.generatedtext;
},
generatedtext: ""
};
function receiver(event) {
if (event.data.type && (event.data.type == "FROM_CONTENTSCRIPT")) {
generator.generatedtext = event.data.text;
}
}
window.addEventListener('message', receiver, false);
generator.gettext
私はそれを返したいのですが、それを設定するgenerator.generatedtext
まで待つことはできませんreceiver
。が呼び出さEventListener
れている間はロックされている印象があります。generator.gettext
非同期になり、コールバックパラメーターを使用するように変更する必要がありますが、これは初めてで、機能させる方法がわかりません。誰か助けてくれませんか?
編集:私がやりたいことは、Web サイトで入力を処理することです。Javascript ファイルがあり、コンテンツ スクリプトによって入力が処理されるようにします。ハードドライブ上の変更されたファイルに javascript ファイルをリダイレクトしました。JavaScript が入力をロードする行を変更します。テキストを送信すると、Javascript ファイルは、var message = generator.gettext(mytext.value);
上記のコードがページに挿入され、mytext をコンテンツ スクリプトに送信し、コンテンツ スクリプトの出力を返さなければならないようなものを呼び出します。