Foros del Web » Programando para Internet » Javascript »

pop up cada 3 horas

Estas en el tema de pop up cada 3 horas en el foro de Javascript en Foros del Web. Hola! ando buscando un codigo algo peculiar, lo encontre pero con algunas mudificaciones, nesesito que en la pagina principal de mi web se abra automaticamente ...
  #1 (permalink)  
Antiguo 07/12/2004, 16:47
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años
Puntos: 0
pop up cada 3 horas

Hola! ando buscando un codigo algo peculiar, lo encontre pero con algunas mudificaciones, nesesito que en la pagina principal de mi web se abra automaticamente un popup pero, que solo se abra cada tres horas, se que el script esta basado en cookies, y encontre algo parecido solamente quq el tiempo de duracion en ves de ser de 3horas era de 1 dia.
Aca les paso el codigo para que lo vean masomenos
Espero puedan darme una mano.
Entre <head> y </head>
Código HTML:
<SCRIPT LANGUAGE="JavaScript">

<!-- Begin
var expDays = 7;

var page = "http://direccion_del_popup";
var windowprops = "width=220,height=320,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=yes"; 

function GetCookie (name) {  
var arg = name + "=";  
var alen = arg.length;  
var clen = document.cookie.length;  
var i = 0;  
while (i < clen) {    
var j = i + alen;    
if (document.cookie.substring(i, j) == arg)      
return getCookieVal (j);    
i = document.cookie.indexOf(" ", i) + 1;    
if (i == 0) break;   
}  
return null;
}
function SetCookie (name, value) {  
var argv = SetCookie.arguments;  
var argc = SetCookie.arguments.length;  
var expires = (argc > 2) ? argv[2] : null;  
var path = (argc > 3) ? argv[3] : null;  
var domain = (argc > 4) ? argv[4] : null;  
var secure = (argc > 5) ? argv[5] : false;  
document.cookie = name + "=" + escape (value) + 
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
((path == null) ? "" : ("; path=" + path)) +  
((domain == null) ? "" : ("; domain=" + domain)) +    
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {  
var exp = new Date();  
exp.setTime (exp.getTime() - 1);  
var cval = GetCookie (name);  
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var count = GetCookie('count')
if(count == null) {
SetCookie('count','1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count',newcount,exp)
return count
   }
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkCount() {
var count = GetCookie('count');
if (count == null) {
count=1;
SetCookie('count', count, exp);

window.open(page, "", windowprops);

}
else {
count++;
SetCookie('count', count, exp);
   }
}
//  End -->
</script> 

el siguiente código en el Body TAG de la pagina donde se dispara el POP-UP.

Código HTML:
<BODY OnLoad="checkCount()"> 

Saludos y gracias
  #2 (permalink)  
Antiguo 07/12/2004, 16:54
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola fedexx:

Primero hay que calcular cuantos milisegundos hay en 3 horas: 3 x 60 x 60 x 1000 = 10800000 (Lo calculé a ojo, pero se puede calcular con javascript...
Y luego tienes que usar en el body algo así:
<body onload="setInterval('popup()', 10800000)" ... >

Y la función popup con el window.open()

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 07/12/2004, 18:20
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años
Puntos: 0
hola caricatos, ahora esta funcion, lo que hara es que abre el popup cada 3 horas .. yo quiero que aunque se cierrer la pagina y se vuelva a abrir el pop up no aparezca . O bien hacerlo arrancar automaticamente sin usar la funcion onload de la etiqueta body.
Porque pasa lo siguente tengo que hacer aparecer un banner en la pagina principal de mi web pero sucede lo siguiente, mi web esta hecha en php nuke entonces si yo hago que el popup se ejecute desde la etiqueta body, se va a ejecutar en cada una de las secciones de mi web porque el template tiene en todas las secciones el mismo <body> no se si me explico, esperoque si la mejor solucion seria encontrar la manera de ejecutar la funcion popup sin que aparezca en el body.
Bueno muychas gracias por tu atencion
Saludos
Fede
  #4 (permalink)  
Antiguo 07/12/2004, 18:35
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Puedes declarar una función en el head y llamarla inmediatamente:

function repetir() {
setInterval('popup()', 10800000);
}
repetir();

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 07/12/2004, 18:57
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años
Puntos: 0
hola de nuevo caricatos,
digamos que pongo esto en el head

<SCRIPT LANGUAGE="JavaScript">
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,men ubar=0,resizable=0,width=521,height=308,left = 251.5,top = 230');");
}
</script>

Para llamarlo desde el body sin tenerque ponerlo en la etiqueta osea sin usar

<BODY onLoad="javascript:popUp('´publicidad.html')".....

seria algo asi ?
<SCRIPT LANGUAGE="JavaScript">
popUp('´publicidad.html');
</script>

O estoy herradisimo?
Gracias y saludos !
  #6 (permalink)  
Antiguo 07/12/2004, 19:07
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por fedexx
hola de nuevo caricatos,
...
O estoy herradisimo?
Gracias y saludos !
Estás acertadísimo...

Yo suelo usar un "probador de script" que subí a esta dirección: http://www.pepemolina.com/probador/index.html

Es muy básico (en local lo tengo algo mejorado), pero te puede ayudar a hacer pruebas...

Puedes probar este código:

<html>
<head>
<script>
function hola() {
setTimeout("alert('hola')", 1000)
}
</script>
</head>
<body>
<script>
hola();
</script>
Hola
</body>
</html>

Podrás ver que es distinto al propuesto, ya que no vamos a esperar 3 horas cuando hacemos pruebas ¿verdad?

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 07/12/2004, 19:56
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años
Puntos: 0
Exelente tu ayuda caricatos sos un master ! mil gracias !
Saludos
FeDeX
  #8 (permalink)  
Antiguo 07/12/2004, 20:00
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284


¡De nada!...

Acuérdate de hacer el cálculo bien, ya que yo lo hice ¡a ojo!

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 07:30.