2012-03-20 49 views
9

iFrameのウィンドウが別のドメインから読み込まれた場合、親ウィンドウにアクセスするタスクが発生しました。私が正しく理解すれば、現代のブラウザはすべてこれを行うことができます。だから私は最良の解決策を見つけるためにここにいる。iframeから親ウィンドウにアクセスする(クロスドメイン)

私はこの次の方法で達成するつもりです:私はその中のiFrameとのオーバーレイを持って

を。これはポップアップの代わりにポップアップブロッカーがコンテンツをブロックするのを防ぎます。タスクは、iFrameのドキュメントが何らかの作業を完了したときにメインページをリロードすることです。 のiFrameにロードされる文書では、私は、機能を追加します毎秒呼ばされると、これはDIVはまだクラス名「偽を持っているかどうかを確認親ウィンドウで

<div id="is_closed" class="false"></div> 

が追加されます"これが "true"に変更されると、私はいくつかのコールバックを呼び出します。

解決策がありましたら、私に教えてください。助けていただければ幸いです。

を編集する:子ウィンドウから親ウィンドウを操作することは不可能ではありませんが、逆も同様です。私の考えは、親ウィンドウから子ウィンドウを操作することでした。私は間違っていた。

+1

'私が正しく理解していれば、すべての最新ブラウザで今これを行うことができます。だから、私はここで最善の解決策を見つけようとしています。あなたが求めていることは不可能です。 –

+8

'postMessage'は異なるドメイン間のiframeで動作します。 – kirilloid

+1

Malgin:可能であれば、Iframeのコンテンツでホスティングページを乗っ取ることができます。これはDELIBERATELYが無効になっています。回避策はありません "ベストソリューション"。 –

答えて

12

私が正しく理解していれば、現代のすべてのブラウザでこれを行うことができます。だから私は最良の解決策を見つけるためにここにいる。

このあなたのソリューションです。あなたが求めていることは不可能です。

関連の質問を参照してください:

EDIT

以下のコメントで述べたように、@JeremysAをwesomeの答えは、特定の状況下でドメイン間のリクエストを許可する方法を提供します。詳細は以下のSOの質問を参照してください。

Ways to circumvent the same-origin policy

+1

子ウィンドウから親ウィンドウを操作することは不可能であると私は理解しています。私が探しているのは、この操作を_imitate_する方法です。言い換えれば、親ウィンドウがコードを実行する子ウィンドウからのフラグです。 –

+1

@Malgin、もう一度、これは不可能です。あなたは**ページ間の**スクリプトレベルの対話**を求めています。これは不可能です。あなたはできないことを模倣することはできません。それに対処するために、SOにはたくさんの質問があります。編集を参照してください。 –

+1

あなたの答えがわからないのは、親ウィンドウから子ウィンドウを操作することも不可能だということだけです。それは私をより永続的にする私の考えでした。再度、感謝します。 –

5

ていますが(例えば#hashtagを追加)iframesrc属性を変更し、子ウィンドウでonhashchangeイベントに耳を傾けることができます。あなたは両方のページを変更する立場にあることを考えると、

35

私があなただったら、私はwindow.postMessageをチェックアウトします。それはあなたがやりたいことがあります。参考のため

は、以下を参照してください。

+1

これは正解です。 Window(またはiframe)間のクロスドメインjs呼び出しは、HTML5ではWindow.postMessageを使用して可能になりました。 – Molomby

+0

IEの frandroid

-3

変数/項目をsessionStorageに設定し、必要に応じて両側で使用します。 localStorageはこれを長時間実行できます。

セキュリティリスクは、あなたの側をハイジャックするためにこれを使用して操作します。しかし誰かがそうしたいと思うならば、常に可能性があります。

覚えておいてください:人生は道を見つけた... ;-)

+1

クロスドメインアクセスに問題がありました。ローカルストレージ/セッションストレージのクロスドメインにアクセスすることはできませんか? – Sudi

+0

変数の名前がわかっている場合はクロスドメインを使用できます –

関連する問題