2012-03-02 10 views
1

私はファンシーボックスを使用して作成したモーダルiframeウィンドウにフォームを持っています。ユーザーがフォームを送信すると、成功時に私はモーダルウィンドウを閉じ、親ウィンドウのdivを 'Saved Successfully'メッセージで更新します。親ウィンドウの通知を一度モーダルに表示するiframe js closed

どうすればよいですか?私は、モーダルを閉じ、fancyboxの親ウィンドウをリフレッシュする方法を知っています。しかし、私が理解していないのは、親ウィンドウに「Saved Successfully」メッセージを送信し、このメッセージでdivを更新してユーザーが見ることができるようにする方法です。

通知プラグインを使用することは役に立ちます。

おかげで、 シャキーラ

答えて

2

まず、私たちは私たちが修正を行うことができます親ウィンドウで関数を作成する必要があります。 $(ドキュメント).ready(関数(){または$(機能){でこの機能を包むしないでください。

function updateParent(msg){ 
    $('#divStatusUpdate').html(msg); 
} 

は、今、私たちは、関数にしたmsgのPARAMTERを渡す機能を持っています。この関数はdivStatusUpdateのIDを持つ親でのdivにしたmsgの内容を適用します。

今、私たちは私たちのためにイベントを行い、要素を持っている。

$("#element").on('click', function(){ 
    window.parent.updateParent('This is a message from the iFrame to the Parent Div.'); 
}); 

単にANとのdivを作成します'divStatusUpdate'のID、上記のスクリプトを追加し、#elementを私たちに欲しいIDまたはクラスに変更しますe。

+0

おかげでそれを呼び出すことができます。 $()でupdateParent関数を囲まないと、その中に$( '#divStatusUpdate')を使用するのが問題になりますか?また、updateParentがside $()にあるべきではない特定の理由もあります。私のためにこれを知っておくと助けになるでしょう。 –

+0

いいえ、jquery-1.7.1-min.jsファイルがコードの前にある限り、jquery構文に格納されているものはすべて解析されます。 $()に入れない理由は、それがローカルスコープになるからです。関数をグローバルスコープにします。 – Ohgodwhy

+0

クール...これは動作します!!ありがとう、トン... –

0

問題がからのiframeトップのフレームを変更している場合は、一番上に関数を作成し、IFRAMEからの迅速な対応のための

top.yourfunction(); 

または

parent.yourfunction(); 
関連する問題