[Javascript] Crear un popup que se ejecute cada x tiempo automáticamente

Estado
No está abierto para más respuestas.

lobogris

Platino
Usuario de Bronce
Mensajes
1,537
Puntuación de reacción
0
Buenas,

esta noche un usuario pregunto por como hacer esto e hice un pequeño código, que la verdad no creo que sea muy útil ya que los navegadores lo suelen bloquear, pero bueno como tal vez a alguien le sirva lo comparto en un hilo y una sección más adecuada, para que esté menos perdido:

Aquí está el código que hice -> Edit fiddle - JSFiddle

Y lo explico:

HTML:
function inicio() {
var ventana = window.open("","ventana");
    ventana.document.write("<span>¡Hola Israel!</span>");
    setInterval(function(){
        ventana.close();
        continuar();
    },20000);
}

continuar = setInterval(function(){
   inicio();
},80000);


window.onload = inicio();

Se crea la función inicio() en la cual se abre una ventana (about:blank) y se escribe en ella ¡Hola Israel!, tras ello se establece un intervalo de tiempo de 20 segundos en el que se ejecutan dos acciones;

1.- Se cierra la ventana

2.- Se llama a la función continuar() la cual no es más que otro intervalo de tiempo de 80 segundos, y no de 60 ya que setInterval no espera x tiempo para ejecutar una función sino que la ejecuta y finaliza según el intervalo de tiempo que se le haya asociado.

La función continuar() volverá a llamar a incio() y así seguirá en un continuo loop.

Y para que todo esto funcione, se llama a la función inicio con window.onload, la cual se ejecuta una vez carga el árbol de documentos de la web, incluyendo imágenes etc.

Para los que les interese añadir una url o modificar un poco más la ventana, window.open acepta varios parámetros (aquí podéis referenciaros)

Por ejemplo para abrir una web, mismamente foro20.

Edit fiddle - JSFiddle

Saludos
 
Mensajes
80
Puntuación de reacción
0
ahí es cuando los visitantes abandonan tu sitio xD
Quien sabe, no veo donde aplicarlo, pero gracias por el aporte :)
 
Estado
No está abierto para más respuestas.
Arriba