私のページには iframe fancybox があります。子ページで、[追加] ボタンをクリックすると、DB に何かを追加します。このプロセスの後、fancybox を閉じて、親ページをリロードします。どうすればいいですか?
2 に答える
これは、ページのリロード時に呼び出す必要があります。
window.parent.closeDialogFormSubmit();
//Or
window.top.parent.closeDialogFormSubmit();
このcloseDialogFormSubmit
関数は、そのページで開いているファンシーボックスにあるはずです。
closeDialogFormSubmit
ファンシーボックスクローズコードのコードを記述します。
関数は外部に記述する必要があり$(document).ready(function(){});
ます $(function(){});
。そうしないと、関数が見つからず、未定義のエラーが発生します。
1)。子ページ
APIメソッドを使用するparent.$.fancybox.close()
次のようなボタンを作成できます:
<a href="javascript:parent.jQuery.fancybox.close();"><img src="myCloseButton.png" alt="close fancybox" /></a>
これらのページ間の相互作用は同一生成元ポリシーの対象となるため、子ページが別のドメインにある場合は機能しない可能性があることparent.$.fancybox.close()
に注意してください。
編集:フォームの送信後に子ページを閉じる必要がある場合は、次のようなタグのonsubmit
属性を使用して閉じる方法を設定します。form
<form id="login_form" action="process.php" onsubmit="javascript:parent.jQuery.fancybox.close();">
詳細なリファレンスとデモについては、この投稿を参照してください。
2)。親ページ
afterClose
カスタムスクリプトに次のようなコールバック
を追加します。
$(".fancybox").fancybox({
afterClose : function() {
location.reload();
return;
}
});
...fancyboxを閉じた後にページをリロードします。JSFIDDLEを参照してください