lang="es"> Ventana emergente de...cualquier cosa!
Recursos para formacion

Ventana emergente de…cualquier cosa!

Si, acabo de terminar de escribir un articulo acerca de como conseguir presentar una ventana emergente desde un controlador de Yii, y puede que sea ingenioso, pero….sigue siendo retorcido, así que pensando un poco mas, os propongo esta ventana con… ‘¿retrollamada?

Esta vez la idea es levantar una ventana emergente, y que sea ella la que llame lo que sea; daros cuenta la flexibilidad que representa el poder cargar en la emergente cualquier cosa; desde paginas de nuestra web, a paginas de otras…. Cualquier cosa que puedas cargar en un IFRAME…

Para hacerlo, vamos a volver a utilizar la rutina fancybox, pero cambiaremos nuestro enfoque. Vamos a escribir una función en un modulo independiente, como os proponíamos antes, puede ser nuestra paginas de funciones.

El código, es el siguiente:

function salidaEmergente($direccion,$tiempoCierre=0){
    $salida="";
    $salida.="";
 
    $rutina="
       \$(document).ready(function() {
          \$('#anclaAutomatica').fancybox({
               'width'  : 640,
               'height' : 480,
               'autoScale' : false,
               'autoSize' : false,
               'type' : 'iframe',
               'transitionIn' : 'none',
               'transitionOut' : 'none',
                         ";
     if ($tiempoCierre>0){
        $rutina.="'onComplete': function(){
              setTimeout( function() {\$.fancybox.close(); },$tiempoCierre*1000); 
      };
      $rutina.="});
          \$('#anclaAutomatica').eq(0).trigger('click');
            }); ";
 
      Yii::app()->clientScript->registerScript('emergenteAutomatico',$rutina,CClientScript::POS_READY);
     return $salida;
}

Vamos a ver que hace:

Para que funcione, nos bastara añadir en cualquier vista:

salidaEmergente("http://www.dopc.com")?>

En este caso, se llama a la pagina www.dopc.com, y no se le indica cierre automático

Y si no trabajas con Yii,  para poder utilizarlo en cualquier pagina php, solo debes cambiar  la linea :

Yii::app()->clientScript->registerScript('emergenteAutomatico',$rutina,CClientScript::POS_READY);

y en su lugar, poner:

$salida.="<script>".$rutina."</script>";

Ahora solo deberás incorporar la carga de jQuery y fancybox siguiendo las instrucciones de sus paginas.

 

Para simplificarte los pasos, te dejo un enlace a una pagina que trabaja así, por lo que veras como esta hecho.

 

 

Salir de la versión móvil