【发布时间】:2010-01-05 23:35:57
【问题描述】:
我正在使用 jQuery ColorBox 来显示购物车项目。当用户在 iFrame 中输入数量(使用颜色框打开)并单击提交按钮时,我希望 iFrame 关闭并自动刷新主窗口(父窗口)。
我的意思是在 iFrame 上提交数据后我想要两件事:
- iFrame 自动关闭。
- 父窗口自动刷新。
请帮帮我。
【问题讨论】:
我正在使用 jQuery ColorBox 来显示购物车项目。当用户在 iFrame 中输入数量(使用颜色框打开)并单击提交按钮时,我希望 iFrame 关闭并自动刷新主窗口(父窗口)。
我的意思是在 iFrame 上提交数据后我想要两件事:
请帮帮我。
【问题讨论】:
在打开 iframe 时在父窗口上使用它:
$(document).ready(function(){
$(".chpic").colorbox({width:"80%", height:"80%", iframe:true,
onClosed:function(){ location.reload(true); } });
});
这将关闭 iframe 页面内的 iframe:
parent.$.fn.colorbox.close();
【讨论】:
在Frame 1中提交表单后,您可以使用以下JavaScript重新加载父框架:
window.parent.location.reload(true);
【讨论】:
<form target="_top">
【讨论】:
打开 jquery.colorbox.js 找到这两段代码:
$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();
}
});
【讨论】:
只需简单地模拟单击关闭按钮,如下所示:
$("#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;
对我来说似乎工作得很好:)
【讨论】:
如果你想留在当前页面:
在应用颜色框的父页面上编写以下代码。
$(document).ready(function(){
$(".tu_iframe_800x600").colorbox({width:"80%", height:"100%", iframe:false
});
});
以及您要关闭颜色框的当前页面上的以下代码parent.$.fn.colorbox.close();
注意:请将 .tu_iframe_800x600 替换为调用颜色框的 html 类...
【讨论】: