J'utilise jQuery ColorBox
pour afficher un article du panier. Lorsqu'un utilisateur entre la quantité dans l'iFrame (ouverte avec colorbox) et clique sur le bouton d'envoi, je souhaite que l'iFrame soit fermé et que la fenêtre principale (parent) soit actualisée automatiquement.
Je veux dire que je veux deux choses après avoir soumis des données sur iFrame:
Sil te plait aide moi.
utilisez ceci sur la fenêtre parente lors de l'ouverture d'iframe:
$(document).ready(function(){
$(".chpic").colorbox({width:"80%", height:"80%", iframe:true,
onClosed:function(){ location.reload(true); } });
});
et ceci pour fermer l'iframe dans la page d'iframe:
parent.$.fn.colorbox.close();
Une fois le formulaire soumis dans l'image 1, vous pouvez utiliser le code JavaScript suivant pour recharger l'image parent:
window.parent.location.reload(true);
<form target="_top">
open jquery.colorbox.js trouve ces deux morceaux de code:
$close.click(function () {
publicMethod.close();
});
$overlay.click(function () {
if (settings.overlayClose) {
publicMethod.close();
}
});
remplace par ceux-ci - notez l'ajout de "window.location.reload ();"
$close.click(function () {
publicMethod.close();
window.location.reload();
});
$overlay.click(function () {
if (settings.overlayClose) {
publicMethod.close();
window.location.reload();
}
});
Donnez une étiquette de formulaire comme ceci:
<form target="_top">
puis après soumission:
response.redirect("your form")
Il suffit simplement de simuler un clic sur le bouton de fermeture, comme ceci:
$("#cboxClose").click();
Je voudrais jeter un oeil à http://colorpowered.com/colorbox/core/example1/index.html
Plus précisément, regardez "Exemple avec des alertes"
Si vous utilisez Drupal 7, vous devrez peut-être utiliser l’alternative suivante:
parent.jQuery.colorbox.close();
Dans D7, le $ .fn semble être remplacé par l'objet jQuery.
J'ai simplement configuré un rappel de menu qui a simplement renvoyé ceci:
return <<<EOF
<script type="text/javascript">
<!--//--><![CDATA[//><!--
parent.jQuery.colorbox.close();
//--><!]]>
</script>
EOF;
Semblait bien fonctionner pour moi :)
Si vous voulez rester sur la page actuelle:
écrivez le code suivant sur la page parente où colorbox est appliquée.
$(document).ready(function(){
$(".tu_iframe_800x600").colorbox({width:"80%", height:"100%", iframe:false
});
});
et le code suivant sur votre page actuelle où vous souhaitez fermer colorbox parent.$.fn.colorbox.close();
Remarque: veuillez remplacer .tu_iframe_800x600
par votre classe html sur laquelle la colorbox est appelée ...