jquery - how - cómo cerrar colorbox dentro de iframe?
modal responsive jquery (9)
Asegúrese de que la página cargada dentro del iFrame. Todas las referencias necesarias a colorbox js, jQuery js no son necesarias.
Entonces la llamada cercana de padres funcionará:
parent.$(''.yourElement'').colorbox.close();
Tengo una página manageGroup.php, donde el usuario también puede agregar miembro a un grupo. Usé colorbox para mostrar addGroupMember.php. Ahora necesito cerrar ese cuadro de colores una vez que haya terminado de enviar el formulario.
JavaScript que estoy usando en manageGroup.php
<script language="javascript" type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/dropdown.js"></script>
<script type="text/javascript" src="js/jquery.colorbox.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(".iframe").colorbox({width:"80%", height:"80%", iframe:true});
});
</script>
El enlace que estoy usando para abrir colorbox
<a class="iframe" href="addGMember.php?id=<?php echo base64_encode($fetch->g_id)?>">Add Member</a>
el código en addGroupMember.php es así:
if($_POST[''add'']=="Go")
{
$gid = $_POST[''id''];
$ii=0;
$insert = "INSERT INTO ".DBGMEMBER." (gm_g_id,gm_m_id) VALUES ";
foreach($_POST[''gMember''] as $gMember)
{
if($ii==0)
{
$insert .= " (''".$gid."'' , ''".$gMember."'')";
}
else
{
$insert .= " ,(''".$gid."'' , ''".$gMember."'')";
}
$ii++;
}
$db->execute($insert);// after this i want to close the colorbox
echo "<script>parent.$.fn.colorbox.close(); </script>";// code i used, but not working
}
Creo que el problema es que el colorbox pertenece al padre, no al DOM en el iframe.
Supongo que deberás llamar al padre. [Modo de obtener el elemento o el objeto $ .fn] .colorbox.close () o necesitarás agregar una función al documento principal y llamar a parent.myCloseFunction ()
En realidad, hay una solución simple que yo uso.
puse este <a id="btnDone" href="#">here</a>
dentro del código o puede usar el ID de su botón de envío y
$(document).ready(function () {
$("#btnDone").click(function () {
window.parent.location = "../siparisler/listele.aspx"
});
}
De esta forma puedes redirigir la página principal. y colorbox se cierra automáticamente. si no necesita una redirección simplemente ponga "#" para window.parent.location
Este funcionó perfectamente para mí y debería funcionar para usted
parent.jQuery.colorbox.close()
Intenté cerrar colorbox desde el iframe pero no pude hacerlo funcionar. Usé $ (''# closebox''). Colorbox.close () y sin suerte.
Lo hice por mí, un poco loco, de todas formas tú también puedes intentarlo.
Suponiendo que su página en iframe como x.php tiene forma llamada xyz
<?php
if($_post[''submit'']==''Submit'')
{
//some php code here
if(success)
echo "<script>parent.$.fn.colorbox.close(); </script>";
else
{
//some error handling here;
}
}
?>
<form name=''xyz'' action=''x.php''>
//some html code here
<input type=''Submit'' name=''submit'' />
</form>
No logré cerrar el Colorbox con las soluciones sugeridas. Me quedan los padres indefinidos ... Así que ...
Encontré tomó un enfoque diferente:
Documento de inicio: ( iframe: falso ) esto abrirá la página ajax en DIV en el mismo documento
$(document).ready(function(){
$("#modalwindow").colorbox({
width:"800px",
height:"510px",
iframe:false,
href:"../ajax_page.php",
});
});
y en el ajax_page
$(''#modalwindow'').colorbox.close();
Espero que esto ayude
Primero: elabora tu pregunta. La información que proporcionaste es algo corto. No hay posibilidad de que uno pueda agarrar lo que está haciendo. También incluye un código de muestra más.
Lo único que podría adivinar es que intentas activar el método en la forma en que está escrito. Todo lo que agrega al objeto $ .fn está vinculado a todos los objetos jQuery.
// doesn''t work
$.fn.colorbox.close()
// proper way
$(''idOfDomElement'').colorbox.close()
..fredrik
sólo esta
parent.$.colorbox.close()
¡Parece funcionar para mi!
Lo usé así sin siquiera una referencia a cualquier JS en el archivo cargado en el iframe.
<a href="javascript:parent.$.colorbox.close()">close</a>
esto solo en un archivo HTML en blanco parece funcionar.