Foros del Web » Programando para Internet » Javascript »

Quiero retrasar un Popup

Estas en el tema de Quiero retrasar un Popup en el foro de Javascript en Foros del Web. Hola, he elaborado un popup con javascript, y me sirve de maravilla, porque me aparece en la pagina al cargarla.... pero yo quisiera que me ...
  #1 (permalink)  
Antiguo 22/09/2009, 14:38
Avatar de Jandor  
Fecha de Ingreso: septiembre-2009
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 1
Pregunta Quiero retrasar un Popup

Hola, he elaborado un popup con javascript, y me sirve de maravilla, porque me aparece en la pagina al cargarla.... pero yo quisiera que me apareciera despues de 5 o 10 segundos de haber entrado a la pag..... no de golpe.

Como hago esto?

He tratado con la funcion settimeout() pero nada.....
  #2 (permalink)  
Antiguo 22/09/2009, 14:51
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Quiero retrasar un Popup

primero, el nombre esta mal escrito, es setTimeout. la sipnosis es simple,
Código:
setTimeout("expresion", tiempo en millisegundos);
setTimeout(nombre_funcion, tiempo en millisegundos);
fijate en la sipnosis, el primer parametro son diferentes. uno es un string que contiene alguna expresion. en el segundo caso el primer parametro es el nombre de una funcion pero sin llamarse, o sea, sin los parentesis. en este segundo caso puede ser incluso una funcion anonima como el siguiente codigo.
Código:
setTimeout(function(){
// instrucciones;
}, 1000);
la forma a utilizarse depende como tengas tu codigo. si tu codigo para crear el popup es una funcion, puedes crear una funcion anonima y dentro pones la llamada a tu funcion con los parametros necesario para tu funcion.

como referencia adicional, esta misma base se puede aplicar a setInterval.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/09/2009, 15:51
Avatar de Jandor  
Fecha de Ingreso: septiembre-2009
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Quiero retrasar un Popup

La verdad, el setTimeout, no le he escrito mal en el codigo, y si trabaje con los milisegundos, pero al cargar me carga demasiado rapido...

Este es el codigo, puede ser que tenga un error y no me haya dado cuenta..

function callPromptWelcome(){
setTimeout(promptWelcome('preFIXE_Media/welcome_page.png'), 5000);
}


promptWelcome, es la funcion del popup, que mando a llamar, y me sale, lo malo es que siento que muy rapido, y aunq cinco segundos es poco, no creo que cargue todo rapido
  #4 (permalink)  
Antiguo 22/09/2009, 16:04
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Quiero retrasar un Popup

creale una funcion anonima como antes te señale.
Código:
function callPromptWelcome(){
setTimeout(function(){
promptWelcome('preFIXE_Media/welcome_page.png');
}, 5000);
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 23/09/2009, 08:21
Avatar de Jandor  
Fecha de Ingreso: septiembre-2009
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Quiero retrasar un Popup

Cita:
Iniciado por zerokilled Ver Mensaje
creale una funcion anonima como antes te señale.
Código:
function callPromptWelcome(){
setTimeout(function(){
promptWelcome('preFIXE_Media/welcome_page.png');
}, 5000);
}
Muchas gracias, finisima ayuda, me sirvio de maravilla.....
Solo una pregunta por información general, porque sirve de esa manera y no de la tradicional, es decir porque es necesario ponerla en una funcion anonima...!!!

Si no es molestia me gustaria saber....

Pero de todos modos muchas gracias por la ayuda!!!
  #6 (permalink)  
Antiguo 23/09/2009, 09:37
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Quiero retrasar un Popup

tambien es valida de la forma tradicional. es decir, pasando las instrucciones como en un string. o sea,
Código:
setTimeout("promptWelcome('preFIXE_Media/welcome_page.png'); /*mas expresiones*/ expresion1; expresion2; /*etc...*/", 5000);
¿donde realmente esta la diferencia? aunque ambas soluciones son validas, realmente tienen sus diferencias y me atreveria a decir quien lleva mas ventaja es la opcion de la funcion anonima. setTimeout, al igual que setInterval, evaluan la expresiones cuando el argumento es un string. o sea, hace exactamente lo mismo como si usaramos eval para evaluar un string como si fuese expresiones de javascript. sin embargo, en el caso de la funcion es distinto. en este caso lo que realmente estamos haciendo es pasar una funcion como argumento y la funcion setTimeout simplemente llama a esa funcion.

se dice que eval es evil, o sea, que es demasiado dañino. honestamente no sabria decirte si se refiere en cuanto a rendimiento o seguridad, pienso que es el primero. si eval es dañino tambien lo es el argumento de setTimeout cuando se pasa como string. por otro lado, eval siempre evalua la expresion en el contexto del objeto window y lo mismo sucede setTimeout. lo que quiere decir es que el scope (un mecanismo que maneja la visibilidad y vida de las variables) de la expresion a evaluar se ejecuta como si las expresiones aparecieran directamente en el codigo fuente, sin estar dentro de una funcion u objeto.

cuando usamos la funcion anonima, sucede el mismo contexto, lo unico que se crea lo que se conoce como closure. mas o menos lo que significa es "atrapar la visiblidad de las variables de una funcion" con el proposito de poder utilizarlas aunque la funcion no se utilice en el mismo contexto donde esta definida dicha funcion. en tu caso no se refleja este efecto por lo que de momento no tienes que darle tanta importancia a este detalle. para futura refencia te recomiendo que busques por google por los terminos "javascript funcion closure".
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 23/09/2009, 10:08
Avatar de Jandor  
Fecha de Ingreso: septiembre-2009
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Quiero retrasar un Popup

Finisima explicación zerokilled, muchas gracias ahora me quedo mas claro todo.....

Disculpa el atrevimeinto pero ahora deseo realizar algo con ese mismo popup.. se puede hacer que el popup aparesce con un fadeIn, es decir que aparesca poco a poco, claro esto siempre con JAVASCRIPT, agradeceria cualquier ayuda, si se pudiese

Ya que me he matado buscando en varios lugares pero tipo no le encuentro la manera....
  #8 (permalink)  
Antiguo 23/09/2009, 10:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Quiero retrasar un Popup

los popup tipo ventana no tienen ese tipo de control. o sea, no busques porque no existe la forma de darle trasnparencia a los popup tipo ventana. cuando digo ventana me refiero al cuadro que usa el sistema operativo para presentar las aplicaciones. la transparencia solo se le puede dar a los elementos de un documento HTML.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 23/09/2009, 11:31
Avatar de Jandor  
Fecha de Ingreso: septiembre-2009
Mensajes: 71
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Quiero retrasar un Popup

Cita:
Iniciado por zerokilled Ver Mensaje
los popup tipo ventana no tienen ese tipo de control. o sea, no busques porque no existe la forma de darle trasnparencia a los popup tipo ventana. cuando digo ventana me refiero al cuadro que usa el sistema operativo para presentar las aplicaciones. la transparencia solo se le puede dar a los elementos de un documento HTML.
Entiendo si es una ventana emergente que use las aplicaciones del SO y el navegador no se puede....

Pero si el caso es que el popup es llamado con java desde una funcion, que lo que hace es crear un div, centrarlo en el navegador, y mostrar una imagen no se podria...

Mira este es el codigo que genera el POPUP

// JavaScript Document

]/*Ventana de Autorizacion *
var response = null

/* VENTANA DE ALERTA */
function promptWelcome(promptWelcometpicture) {

promptbox = document.createElement('div');

promptbox.setAttribute ('id' , 'promptWelcome')

document.getElementsByTagName('body')[0].appendChild(promptbox)

promptbox = eval("document.getElementById('promptWelcome').sty le")


document.getElementById('promptWelcome').innerHTML = "<div style='background-color:#000000; width:100%; height:100%; filter: alpha(opacity=40); opacity:.4; z-index: 13; position:absolute;'> hey a pasa!!! </div> <div id='cuerpo'> <table cellspacing='0' cellpadding='0' border='0' width='100%' class='promptbox'> <tr valign='middle'> <td valign='middle'> <img src='" + promptWelcometpicture + "' height='560' width='448'></td></tr> </table> <input type='button' id='inClose' value='X' onClick='document.getElementsByTagName(\"body\")[0].removeChild(document.getElementById(\"promptWelco me\"))'> </div>"


}

function callPromptWelcome(){
setTimeout(function(){
promptWelcome('preFIXE_Media/welcome_page.png');
}, 1000);
}

En este caso se podria... si no es asi no hay de otra, pero de todos modos gracias por todo tu ayuda muy fino.....
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:54.