JQuery ColorBox
を使用してショッピングカートアイテムを表示しています。ユーザーがiFrame(カラーボックスで開かれた)に数量を入力して送信ボタンをクリックすると、iFrameが閉じてメインウィンドウ(親)が自動的に更新されるようにします。
IFrameにデータを送信した後、次の2つのことが必要になります。
私を助けてください。
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();
}
});
次のようにフォームタグを付けます:
<form target="_top">
送信後:
response.redirect("your form")
次のように、閉じるボタンのクリックをシミュレートするだけです。
$("#cboxClose").click();
私は見てみましょう http://colorpowered.com/colorbox/core/example1/index.html
具体的には、「アラートの例」をご覧ください。
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
});
});
_
カラーボックスを閉じる現在のページの次のコードparent.$.fn.colorbox.close();
注:_.tu_iframe_800x600
_を、カラーボックスが呼び出されるhtmlクラスに置き換えてください...