2010-12-06 10 views
10

iframeクロスドメイン)のページをラッピングして、お客様のウェブサイトに挿入したいウェブページを開発しています。 I は、親とやりとりする必要はありません。iframeの外側にあるものについて何か知っておく必要があります。IFrame内でラップされる場合のWebページの制限?

私はHTMLCSSJavascriptをウェブサービスを使用しています。

質問:は、どのように私は私のページがのiframe外で実行されていた場合に比べてのiframeの内側に制限されていますか?

+0

制限事項は正確にはわかりませんが、iframeのコンテンツが親ページにアクセスする必要がない場合は、そのいずれにも遭遇しません。私はこの質問が純粋に知的探求であると思いますか? :) – jrharshath

+0

関連する回答を検索すると、さまざまな* iframe *の問題に非常に特殊な解決策がたくさんあります。私はより一般的なものを探しています*これをやってはいけません*、*やってはいけません*これは* iframe *に居住しているときは不可能です。 – Chau

答えて

13

あなたはそうではありません。ドメインからiframeにリンクされているJSはiframeのコンテキストで動作します。異常なコンテナに詰め込まれるのとは別に、独立してロードされた場合と同じように動作するはずです。

しかし、両方のページに協力するように書かれている場合、親フレームとiframeの間で信号を送信する方法があります。親が読むことができ、ページのリロードを強制しないURLには#を使用するメソッドがあります。実際にウィンドウのサイズを変更せずに手動で起動できるwindow.resizeイベントを共有していると思います。

更新:以前よりもクロスドメインiframe間で通信する方法がはるかに優れています。もちろん、両端で協調JSが必要ですが、URL内のハッシュ記号の後にwindow.resizeとデータを介してメッセージをトリガーするのではなく、window.postMessageを使用することができます。それはクールなトリックでした。

+0

すべてのフレームが独自のウィンドウオブジェクトを取得します。その考え方は、必要なsrcをスローして、それを表示してiframeで使用できることです。ただし、フレームバスト処理のコードが組み込まれている場合を除きます。iframe内のJSにグローバル変数が定義されている場合は、そのiframeのウィンドウオブジェクトの親ウィンドウは、iframeの子要素の.src要素にアクセスすることができ、私は両方のウィンドウが同じwindow.resizeを参照すると信じています。それはクロームイベントのほうが多いですが、私の知る限りでは2つの別々のページのようです。 –

1

リンクを作成するときは、親ウィンドウのリンクを作成する場合は、タグのtarget属性を使用することを忘れないでください。それ以外の場合は、新しいページがiframeに読み込まれます。

関連する問題