1

2 つの異なるフレーム (A と B) に情報を表示する 2 つの Web アプリケーションがあります。A の JavaScript は B の非表示フィールドを読み取り、非表示フィールドの値に基づいていくつかのアクションを実行します。また、A は B の最初のページをロードする責任があります。B は複数のページを持つことができ、A のコマンドは B の任意のページに含めることができます。B のページは、B の現在の状態に基づいて動的に構築されます。 A と B は同じドメインから来ています。ただし、場合によっては (アプリケーションのパフォーマンスとアーキテクチャ)、A と B を 2 つの異なるドメインから取得する必要があり、この場合、クロス ドメインの制限により、A は B の非表示フィールドを読み取ることができません。Access-Control-Allow-Origin を使用しようとしましたが、ブラウザーに既に読み込まれている 2 つのフレーム間で継ぎ目が機能しません。

誰かが問題を解決するためのアイデアを持っていますか

フランク

4

1 に答える 1

0

同じウィンドウ内に異なるドメインからの複数のiframeがある状況では、(発信元に関係なく)iframe間でメッセージを送信できるようにするpostMessageAPIを使用する必要があります。ただし、postMessageを機能させるには、両方のiframeのコードを変更する必要があります。

基本的に、AがBのフィールドを読み取る代わりに、AはBにメッセージを送信して、フィールドを読み取りたいことを通知します。次に、Bは、それらのフィールドのデータを含む別のメッセージをAに送り返します。

また、メッセージを送信する代わりに、より自然な方法(リモートプロシージャコール)でiframe間で通信できるようにするjsChannelpmrpcなどのpostmessageに基づくいくつかのより高度なライブラリを使用してみることができます。

于 2012-12-14T07:41:22.440 に答える