0

私たちのウェブサイトはを利用していshowModalDialogます。ダイアログ内で行われることに基づいて、ダイアログを開いたページをリロードする場合としない場合があります。これを行うには、ダイアログJavaScriptwindow.returnValuetrueまたはfalseに設定します。次に、基になるページが、への呼び出しの戻り値でそれを検査しますshowModalDialog

これは、ダイアログドキュメントと基になるページが同じオリジンドメインから読み込まれる場合に正常に機能します。Webで一般的であるように、ダイアログのドメインがページのドメインと一致しない場合、からの戻り値showModalDialogは常にundefinedです。

さまざまな方法で、ダイアログから下にあるウィンドウにフラグを渡すことを楽しんでいます。幸い、すべてがサポートしているブラウザを対象としていますpostMessageが、ダイアログJavaScriptはの値を取得していないようです。そのため、ウィンドウへの参照を取得してメッセージを投稿できるwindow.openerとは思いません。このようなiframe回避策を実装することは、コードベースでは実行不可能です。これは、すべて同じダイアログを開くことができる複数のサイトにiframe受信者ドキュメントをインストールする必要があるためです。

ダイアログをリロードせずにクロスオリジンのオープニングページと通信させるためのより良い方法はありますか?

4

1 に答える 1

0

私は自分の答えを見つけたかもしれません。私が理解していることからdocument.domain、オープナードキュメントとダイアログドキュメントの両方のプロパティを同じ値に設定すると、この情報にアクセスできるはずです。どちらも同じルートドメイン名のサブドメイン内にあるため、機能するはずです。これを試してうまくいけば、この答えを受け入れます。

于 2011-12-28T21:56:27.800 に答える