¿Quiero que se abra una pagina de presentación en flash pero solo la primera vez que alguien entre?
Hola bruckner. Quiero abrir una ventana desde mi página principal que contenga una presentación en flash, pero solo quiero que se abra la primera vez que alguien entra, no cuando vuelven a la página principal, después de visitar otras páginas, ya que sino resulta muy pesado. Gracias por anticipado.
La forma más sencilla de conseguir lo que quieres es mediante una cookie. Aunque se pueden manejar a mano, lo mejor es usar estas funciones estándar para acceder y escribir correctamente cookies: function setCookie(cookieName,cookieValue,expires,path,domain,secure) { document.cookie= escape(cookieName)+'='+escape(cookieValue) +(expires?'; EXPIRES='+expires.toGMTString():'') +(path?'; PATH='+path:'') +(domain?'; DOMAIN='+domain:'') +(secure?'; SECURE':''); } function getCookie(cookieName) { var cookieValue=null; var posName=document.cookie.indexOf(escape(cookieName)+'='); if (posName!=-1) { var posValue=posName+(escape(cookieName)+'=').length; var endPos=document.cookie.indexOf(';',posValue); if (endPos!=-1) cookieValue=unescape(document.cookie.substring(posValue,endPos)); else cookieValue=unescape(document.cookie.substring(posValue)); } return cookieValue; } Sólo los valores cookieName y cookieValue son obligatorios. Los valores por defecto para los demás son: - Expires: es un objeto Date; si no se pone, la cookie desaparece cuando el usuario cierre el navegador. Si se pone una fecha anterior a la actual, la cookie pierde validez inmediatamente y se borrará en cuanto el navegador se cierre (es como borrarla inmediatamente). - Path: toma por defecto el path de la página que la establece, en el servidor. - Domain: toma por defecto el dominio de la página que la establece. - Secure: por defecto no está activada. Después de poner esas funciones en un script dentro del HEAD de tu página principal, tendrás que usarlas para poner una cookie. La idea es intentar leer la cookie, y si ésta no existe, mandársela al usuario. Tendrás que decidir qué nombre va a tener (cualquiera vale) y qué caducidad va a tener. Si la haces con caducidad de sesión, tu presentación en Flash saldrá cada vez que un usuario acceda a tu página con una sesión nueva de su navegador. Puedes ponerle, en el otro extremo, una caducidad de un año, para que un usuario que haya visto una vez tu presentación no la vuelva a ver más. Es decisión tuya. El código que tienes que usar es: var ahora=new Date(); var dentrodeunanno=new Date(ahora.getTime()+1000*60*60*24*365); if (!getCookie('yaVisitado')) { setCookie('yaVisitado','si',dentrodeunanno); ventanaPresentacion=window.open(...); // abre tu presentación aquí } Puedes cambiar la variable dentrodeunanno para que refleje otro periodo de tiempo: lo que hace es crear una fecha con la hora actual (en milisegundos desde el 1/1/1970) y sumarle los milisegundos que hay en un año: 1000 ms/s*60 s/min*60 min/h*24 h/día*365 días/año. Si no le pones nada, la cookie caducará con la sesión del navegador, y la presentación volverá a salir la próxima vez que el usuario entre en tu página (después de haber cerrado y abierto el navegador). Espero haberte sido de ayuda, y no dudes en preguntarme si tienes problemas (con esto o cualquier otra cosa).