2011-05-28 7 views
11

いいえ、私はページ上のiframeを使用しています。 iframe内のコンテンツは制御できず、Adobe Flashプログラムで利用されています。iframeのコンテンツが投稿された後にiframeから抜け出す必要がある

フォームがiframe内でsumittedされると(もう一度私は制御できません)、ページがロードされますが、オーバーはコントロールされますが、iframeから抜け出す代わりにIFRAME内にそのページがありますそのページにそのページのiframeからどうやって抜け出すのですか?

私はいくつかのJavascriptが必要であると仮定しているが、このコードは無意味です:このコードを使用して

if (top.location != self.location) { 
top.location = self.location; 
} 

は、サイトのメインのインデックスページをロードします。フォームが送信されてから抜け出した後、ページをロードする必要があります。繰り返しますが、フォームがiframe内で送信された後にiframe内に読み込まれるページにアクセスできます。

私を助けてください。

恐らくそれをやるのが難しい方法でしょうか?例えば、ページがロードされている間は?または、どういうわけかiframeが送信されたことを確認しますか?私は自分のウェブサイト(最初はiframeを保持しているページとiframeが送信されたページ)の両方のページを制御しますが、iframeコンテンツではありません。私はあなたがそれはあまりにもドキュメントの参照が必要になることがあります。この

if(this != top){ 
    top.location.href = this.location.href; 
} 

を抜け出すにしたいと考えてい

+0

https://css-tricks.com/snippets/javascript/break-out-of-iframe/に触発しますか?また、異なるドメインを持つ外部ページと内部ページに起因するセキュリティ上の問題にぶつかる可能性がありますか? – ErikE

答えて

11

:)

おかげで...私がチェックするために、コンピュータではありませんよ。私の仕事は何

if(this != top){ 
    top.document.location.href = this.document.location.href; 
} 
+0

どこにコードを記述しますか?頭の中で? 「これ」は何であるかをどのように知っていますか?または、Javascript内の「トップ」は何ですか?自動的にそれを知っているのでしょうか、それとも定義する必要がありますか? – SoLoGHoST

+0

これは動作しませんが、iframeが行くURLの代わりにサイトインデックスに移動しています。 – SoLoGHoST

+0

ページのURLは何ですか? 1つのフレームしかありませんか?私はこのコードを何十回も使用していて、それが機能していることを知っているからです。はい、頭や体に置くことができます...トップは一番上のウィンドウへのグローバル参照で、これは自動的に「この」ウィンドウを参照しています。 PS私はわずかに逃げたかもしれない、それは完全な名前で '文書'が必要な場合があります。 – scunliffe

1

されました:

(function() { 
    'use strict'; 
    console.log('window.top.location', window.top.location); 
    console.log('window.location', window.location); 

    if (window.location !== window.top.location) { 
     window.top.location = window.location; 
    } 
})(); 

あなたは、外側ページまたはインラインフレームのページにコードを入れている