2012-05-02 11 views
0

これはシンプルモダールではかなり広く使われているようですが、どこでもやり方を見つけることができません。SimpleModalで変数を返す方法

私は、変数を生成するsimplemodalを使用してiframe経由でページをプルアップしています。次に、モーダルが閉じられたときに親ページに戻したいと思います。

どうすればいいですか?

ありがとうございました!

答えて

1

どうやってそれを返すのですか? jquery?同じドメイン、プロトコル、またはそれ以外でdocument.domainが正しく設定されていない場合は、次のスニペットでエラーが発生しますが、親ページのDOMにアクセスするには次のような方法を試すことができます。だから、

window.parent.$ 

あなたは親ページでこの機能を持っているとしましょう、

function UpdateTheHeaderPlease(data) { 
$('.header').replaceWith(data); 

}その後、

あなたはこのコードOnCloseのsimplemodalコールバックに包まれています:

$("#element-id").modal({onClose: function (dialog) { 
window.parent.UpdateTheHeaderPlease(some data); 

});

+0

私は、iframeでモーダルを閉じた後、その変数をメインページでどのように使用するのですか。だから、モーダルを閉じてwindow.parentを作るのではなく、何も使えないiframeがもう存在しないのですか?また、すべて同じドメイン、プロトコルなどにあるので、そこに問題はないはずです。 – RandyLahey

+0

だから私はJavaScriptを使ってOnCloseコールバックで親を更新すると考えていた。技術的には、iframeの前に閉じていたが、おそらく動作するだろうか?ちなみに –

0

私はそれを理解しました。Rob Aに感謝しました。

最初にiframeに名前を付ける必要がありました。私は閉じて前に私は窓を設定し、モーダルはの名前を使用して変数をスコープその後

window.frameVar = myVar; 

$.modal('<iframe src="modal_calls.cfm" name="frameName">', { 

は、その後のiFrameページ内で私は戻って、ウィンドウに渡された変数をスコープwantedが変数を設定しましたiFrame:

onClose: function (dialog) { 
    window.newFrameVar= window.frameName.frameVar; 
    $.modal.close(); 
} 

次に、window.newFrameVarを使用して親ドキュメントでアクセスできました。

+0

は、iframeを避けるのが一般的には良い考えだと思います。両方のURLを制御している場合は、ajaxなどで埋められているdivを使用して調べることができます –

関連する問題