iframe
(クロスドメイン)のページをラッピングして、お客様のウェブサイトに挿入したいウェブページを開発しています。 I は、親とやりとりする必要はありません。iframeの外側にあるものについて何か知っておく必要があります。IFrame内でラップされる場合のWebページの制限?
私はHTML、CSS、Javascriptをとウェブサービスを使用しています。
質問:は、どのように私は私のページがのiframe外で実行されていた場合に比べてのiframeの内側に制限されていますか?
iframe
(クロスドメイン)のページをラッピングして、お客様のウェブサイトに挿入したいウェブページを開発しています。 I は、親とやりとりする必要はありません。iframeの外側にあるものについて何か知っておく必要があります。IFrame内でラップされる場合のWebページの制限?
私はHTML、CSS、Javascriptをとウェブサービスを使用しています。
質問:は、どのように私は私のページがのiframe外で実行されていた場合に比べてのiframeの内側に制限されていますか?
あなたはそうではありません。ドメインからiframeにリンクされているJSはiframeのコンテキストで動作します。異常なコンテナに詰め込まれるのとは別に、独立してロードされた場合と同じように動作するはずです。
しかし、両方のページに協力するように書かれている場合、親フレームとiframeの間で信号を送信する方法があります。親が読むことができ、ページのリロードを強制しないURLには#を使用するメソッドがあります。実際にウィンドウのサイズを変更せずに手動で起動できるwindow.resizeイベントを共有していると思います。
更新:以前よりもクロスドメインiframe間で通信する方法がはるかに優れています。もちろん、両端で協調JSが必要ですが、URL内のハッシュ記号の後にwindow.resizeとデータを介してメッセージをトリガーするのではなく、window.postMessage
を使用することができます。それはクールなトリックでした。
** @ Erik **:あなたの答えをありがとう。しかし、「」、javascript * window.location ... *などを使用して別の* url *(iframeから移動しない)に移動するのはどうでしょうか? – Chau
すべてのフレームが独自のウィンドウオブジェクトを取得します。その考え方は、必要なsrcをスローして、それを表示してiframeで使用できることです。ただし、フレームバスト処理のコードが組み込まれている場合を除きます。iframe内のJSにグローバル変数が定義されている場合は、そのiframeのウィンドウオブジェクトの親ウィンドウは、iframeの子要素の.src要素にアクセスすることができ、私は両方のウィンドウが同じwindow.resizeを参照すると信じています。それはクロームイベントのほうが多いですが、私の知る限りでは2つの別々のページのようです。 –
リンクを作成するときは、親ウィンドウのリンクを作成する場合は、タグのtarget
属性を使用することを忘れないでください。それ以外の場合は、新しいページがiframeに読み込まれます。
制限事項は正確にはわかりませんが、iframeのコンテンツが親ページにアクセスする必要がない場合は、そのいずれにも遭遇しません。私はこの質問が純粋に知的探求であると思いますか? :) – jrharshath
関連する回答を検索すると、さまざまな* iframe *の問題に非常に特殊な解決策がたくさんあります。私はより一般的なものを探しています*これをやってはいけません*、*やってはいけません*これは* iframe *に居住しているときは不可能です。 – Chau