0

Webページにiframeがあります。したがって、Escをiframe内で押すと、ドキュメントの上部フレームにフォーカスを設定する必要があります。iframeは別のドメインのものです。ここに画像の説明を入力してください

ここで、Frame-BのURLはabc.comになり、frame-Aはxyz.comになります。

したがって、Frame-Bでイベントが発生した場合、Frame-Aにフォーカスする必要があります。

フレームAとフレームBのイベントをいくつでもバインドできます。

私はこの「iframe内のiframe内のiframe」のような古い方法を見つけました。興味がない。

これをどのように行うことができるかについてのアイデアはありますか?

4

1 に答える 1

4

外側のフレームをある程度制御できる場合 (たとえば、それがあなたのサイトであるが、それでも B とは異なるサイトであるとします)、問題に対する解決策はいくつかあります。外側のフレームを制御できない場合(たとえば google.com であるため) 、できることは何もありません。ブラウザはそれを防ぐように設計されています。ジョナスの回答を参照してください。

では、外側のページを制御できるとしたらどうでしょうか? 次のいずれかが機能します。

  • postMessageを使用します。フレーム A に非常に一般的なイベント リスナーを追加するだけです。IE7 以下を除く「すべての」ブラウザで利用できます。
  • サーバーを仲介者として使用します。Frame-B からサーバーにリクエストを送信し、そこから Frame-A にアクセスさせます。ポーリングしたくない場合は、Frame-A で Web ソケットを使用できます (または、Web ソケットが存在しない場合に他のテクノロジにフォールバックする優れた Web ソケット ライブラリ)。
  • フラグメント識別子ハックを使用します。ここでそれ(および他のいくつかの手法)について読むことができます:http://softwareas.com/cross-domain-communication-with-iframes
于 2012-08-03T08:26:43.883 に答える