2011-04-19 26 views
8

Mi problema es que necesito un colorbox para volver a cargar la página principal al cerrar.Colorbox recarga la página principal al cerrar

Esto es lo que tengo:

$(".example").colorbox({ 
    onClosed:function(){ 
     parent.location.reload(); 
    } 
}); 

cargas Colorbox bien, pero no se actualiza la página padre en una estrecha. ¿Algunas ideas?

+0

No se olvide de aceptar la respuesta. –

Respuesta

13

Uso window.location.reload(); o window.location = window.location; en lugar de parent.location.reload();

+1

¡Gracias +1! esto funcionó para mí;) –

1

o simplemente utilizar

<input type="submit" onclick="parent.location.reload()" value="Save" name="submit"/> 

prefiero éste sobre la solución de Lucas, porque también se puede crear fácilmente

<input type="button" onclick="javascript:parent.$.colorbox.close()" value="Cancel" /> 

sin que volver a cargar el página completa.

-1
function __colorbox_onClose(e) { 
    $.fn.colorbox.close(); 
    return false; 
} 
$.fn.colorbox.close(); - Closes colorbox manually 

return false; - reloads/Autopostbac's form from which you called colorbox 
3

Un poco retrasado, pero tengo otra respuesta. Puede enviar el código para volver a cargar la ventana desde la página de destino que se carga en colorbox.

Estaba usando el colorbox para iniciar sesión/how_it_works/faqs & algunas otras funciones. Quería que mi página principal se recargue solo en caso de 'iniciar sesión'. Así, en respuesta al formulario de conexión, envié el siguiente código:

<script type="text/javascript"> 
window.parent.location.reload(); 
</script> 

'ventana' es colorbox ventana. Le estoy pidiendo a su padre (ventana del navegador) que vuelva a cargar.

0

Aquí es mi genérica colorbox-apertura-función:

Se puede:

  • Actualizar la página después de cerrar
  • recargarlo-auto (+ con alguna URL Ajax personalizado)
  • Cargue otro HTML
  • IMPORTANTE -> estas acciones ocurren cuando cierra MANUALMENTE el colorbox:
    • Configurar variables globales apropiadamente
    • $ .colorbox.close();

también:

  • Focus un elemento HTML personalizada después de la carga

El punto principal es, usted debe tener (pero, por supuesto, si usted sabe lo que está haciendo) algunas variables de JavaScript GLOBAL y eso es todo.

function showActionForColorBox(
    _url, 
    _forFocus 
    ) { 
    _url = fixURLWithMasterServerPrefix(_url); 
    $.colorbox(
     { 
      scrolling: false, 
      href: _url, 
      onLoad: function() { 
       idColorboxAjaxIndect1.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect2.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect3.appendTo($('#cboxOverlay')); 
       idColorboxAjaxIndect4.appendTo($('#cboxOverlay')); 
       return; 
      }, 
      onComplete: function() { 
       if (_forFocus) { 
        var c = $('#' + _forFocus); 
        if (c.length) { 
        c.focus(); 
        } 
       } 
       return; 
      }, 
      onCleanup: function() { 
       // TODO: ? 
       return; 
      }, 
      onClosed: function() { 
       abortAllAsyncAjaxRequests(); 

       if (shouldReloadPageAfterColorBoxAction) { 
        shouldReloadPageAfterColorBoxAction = false; // NOTE: To be sure: Reset. 
        reloadWholePage(); 
       } 
       else if (cbEBillsActionReloadPopup) { 
        cbEBillsActionReloadPopup = false; 
        // NOTE: WE HAVE AN OPTION TO RELOAD COLORBOX WITH CUSTOM URL ! 
        showActionForColorBox((cbActionReloadPopupCustomURL !== '' ? cbActionReloadPopupCustomURL : _url)); 
        cbActionReloadPopupCustomURL = ''; 
       } 
       else if (cbShouldLoadAnotherContentAfterClosed) { 
        cbShouldLoadAnotherContentAfterClosed = false; 
        $.colorbox({ html: setupContentForcbShouldLoadAnotherContentAfterClosed }); 
        setupContentForcbShouldLoadAnotherContentAfterClosed = ''; 
       } 
       return; 
      } 
     } 
     ); 

    return; 
} 
0
$(document).bind('cbox_closed', function(){ 
    location.reload(); 
}); 

El código anterior es para botón predeterminado colorbox cerrar (x).

Si usted tiene su propio botón de cierre a continuación, tratar de esta manera:

$('#id').click(function(){ 
    location.reload(); 
}); 
Cuestiones relacionadas