クロスドメイン通信の問題を回避するために、HTML5の新しいpostMessage機能を使用しているコードがあります。私はコンテンツを正しく読み込んだiFrameにメッセージを投稿しているかどうかを検出する方法を見つけようとしています。フレームが正しく読み込まれなかった場合、postMessageはこれを知らず、無意味なフレームにメッセージを投稿します(コンテンツが読み込まれているかどうかにかかわらず、メッセージがフレームに配信されていると仮定します)。HTML 5 PostMessage/iFrameの読み込みに失敗しました
これが私たちのワークフローです:
- それは別のドメインからのプロキシページに設定したソースだと順番にユーザー負荷http://www.a.com/specialpage.aspx
- a.com/specialpage.aspxが子供iFrameをロードし、としてhttp://www.b.com/lookatmyproxy.htmを言います例。
- ユーザーは何らかの操作を行い、ボタンをクリックします。
- window.postMessageは、フレームが読み込まれたプロキシによってピックアップされる子フレームにメッセージを投稿するために使用されます(b.com/lookatmyproxy。 htm)。受信後、メッセージは検証され、処理され、返信は親フレーム(a.com/specialpage.aspx)にポストバックされます。
- ユーザーはその行動の結果を表示し、誰もが満足しています。
問題が発生するシナリオは、b.comがダウンしていて、プロキシがiFrame内で読み込まれなかった場合、postMessageが起動して忘れてしまい、親フレームが何らかのエラーや応答を受け取ることがないということです。セキュリティ上の懸念やiframeの性質によって、プロキシが正しくロードされたかどうかを調べるために、フレームの内容やステータスを確認できないようです。 a.comとb.com(a.com.comはa.com/relayへの投稿、b.com/proxyへの投稿など)の間で、私たちが制御しているいくつかのタイムアウトロジックを持つリレーを置くことができました。しかし、それは複雑すぎるようです。
iFrameをチェックして内容が正しく読み込まれているか、postMessageが読み込みに失敗したフレームに配信していることを検出する方法はありますか?