送信後にcolorbox iframeを閉じます
質問
私はjqueryを使用しています ColorBox
ショッピングカートアイテムを表示します。ユーザーがiframe(colorboxで開く)の数量を入力し、送信ボタンをクリックすると、iframeを閉じてメインウィンドウ(親)を自動的に更新したいと思います。
iframeに関するデータを送信した後、2つのことが欲しいということです。
- iframeは自動的に閉じます。
- 親ウィンドウが自動的に更新されます。
私を助けてください。
解決
iframeを開いている間、親ウィンドウでこれを使用します。
$(document).ready(function(){
$(".chpic").colorbox({width:"80%", height:"80%", iframe:true,
onClosed:function(){ location.reload(true); } });
});
そして、これはiframeページ内のiframeを閉じるために:
parent.$.fn.colorbox.close();
他のヒント
フォームがフレーム1で送信された後、次のJavaScriptを使用して親フレームをリロードできます。
window.parent.location.reload(true);
<form target="_top">
jquery.colorbox.jsを開くこれらの2つのコードを見つけます:
$close.click(function () {
publicMethod.close();
});
$overlay.click(function () {
if (settings.overlayClose) {
publicMethod.close();
}
});
これらに置き換えます - 「window.location.reload();」の追加に注意してください。
$close.click(function () {
publicMethod.close();
window.location.reload();
});
$overlay.click(function () {
if (settings.overlayClose) {
publicMethod.close();
window.location.reload();
}
});
見てみましょうhttp://colorpowered.com/colorbox/core/example1/index.html
具体的には、「アラート付きの例」を見てください
このように、閉じるボタンをクリックするだけでシミュレートするだけです。
$("#cboxClose").click();
このようなフォームタグを与える:
<form target="_top">
その後、送信後:
response.redirect("your form")
Drupal 7を使用している場合、次の代替案を使用する必要がある場合があります。
parent.jQuery.colorbox.close();
D7では、$ .fnはjQueryオブジェクトに置き換えられているようです。
これを返すメニューコールバックを単に設定するだけです。
return <<<EOF
<script type="text/javascript">
<!--//--><![CDATA[//><!--
parent.jQuery.colorbox.close();
//--><!]]>
</script>
EOF;
私のためにはうまくいくようでした:)
現在のページにとどまりたい場合:
ColorBoxが適用されている親ページに次のコードを書きます。
$(document).ready(function(){ $(".tu_iframe_800x600").colorbox({width:"80%", height:"100%", iframe:false }); });
ColorBoxを閉じたい現在のページの次のコード
parent.$.fn.colorbox.close();
注:交換してください .tu_iframe_800x600
ColorBoxが呼ばれるHTMLクラスで...