コンテンツスクリプトがbackground.jsにメッセージを送信します。レスポンスのコールバックハンドラでは、最後の行は"alert(alrt_msg)"
です。コードを実行すると、私は警告ボックスを取得しますが、「OK」をクリックした後、赤で次クロームコンソールショー:コンソールでChrome拡張機能のスローエラーが発生しました
Error in event handler for 'undefined': Cannot call method 'disconnect' of null TypeError: Cannot call method 'disconnect' of null
at chromeHidden.Port.sendMessageImpl (miscellaneous_bindings:285:14)
at chrome.Event.dispatch (event_bindings:237:41)
at Object.chromeHidden.Port.dispatchOnMessage (miscellaneous_bindings:250:22)
有益そのあまりありませんが、直感的に、私はいくつかの構造がどこかゴミであるため、このエラーがあることを知っていましたユーザーが「OK」をクリックしている間に収集されます。だから私は、これはそれが上記のエラーなしで働かせた
window.setTimeout(function() { alert(alrt_msg); } , 1);
として私のコードを置きます。それでも、ドキュメントやGoogleを検索した後、私はこれの背後にある正確な理由を見つけることができませんでした。誰かが何が起こっているのかを説明してください。
コードは何ですか? 'onMessage'イベントリスナの最後に' return true; 'を挿入するとどうなりますか? –
私は、メッセージの応答のハンドラが警告がクリックされるのを待たずにいると考えています。したがって、アラートを閉じてスクリプトを続行すると、ハンドラはもう存在しません。これがバグとみなせるかどうかはわかりません。 – Goodwine
@Goodwine、私はあなたが正しいと信じています。 – Methos