Foros del Web » Programando para Internet » Javascript »

Borrar cookie al cerrar pagina pulsando el (X) del navegador

Estas en el tema de Borrar cookie al cerrar pagina pulsando el (X) del navegador en el foro de Javascript en Foros del Web. Saludos, A ver si alguien me puede ayudar : He cogido dos script y los he fusionado en un fichero "js". El primero hace que ...
  #1 (permalink)  
Antiguo 12/05/2004, 13:57
 
Fecha de Ingreso: mayo-2004
Mensajes: 22
Antigüedad: 20 años
Puntos: 0
Pregunta Borrar cookie al cerrar pagina pulsando el (X) del navegador

Saludos,

A ver si alguien me puede ayudar :

He cogido dos script y los he fusionado en un fichero "js".
El primero hace que una imagen "gif" ocupe la totalidad de la pantalla y aunque se haga un scroll dicha imagen sube y baja y no deja acceder a la web si antes no se ha aceptado una serie de condiciones que estan insertadas en dicho "gif" y que se aceptan o no a través del mapa de imagen.

El segundo hace que cuando se acepten las condiciones inserta un cookie y asi cuando cargan, actualizan o cuando regresan a dicha página, no vuelva a aparecer el "gif " con las condiciones.

El problema es el siguiente :
Cuando cierran la página a través de picar en (X) del navegador,
el cookie no se ha borrado y la próxima vez que cargen la página el script detecta el cookie y no presenta el "gif" con las condiciones.

Lo que quiero hacer :
Que al picar en (X) del navegador se borre la cookie.

Gracias anticipadas y felicidades por esta web y todo su contenido
  #2 (permalink)  
Antiguo 13/05/2004, 01:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Quítale la expiración a la cookie. Eso te creará una cookie de sesión, con lo cual se pierde en el momento de cerrar esa ventana
  #3 (permalink)  
Antiguo 13/05/2004, 12:58
 
Fecha de Ingreso: mayo-2004
Mensajes: 22
Antigüedad: 20 años
Puntos: 0
Saludos tunait ,

Gracias por tu pronta contestación.

Como me has sugerido le he quitado la expiración a la cookie para crear asi una cookie de sesión.

El problema que me surge ahora es el siguiente :

Cuando se visita un link de la página y se regresa otra vez a la página,,,, se crea una nueva sesión por lo tanto la cookie ha desaparecido y vuelve a salir el "gif". También si se actualiza la página dos veces seguidas el "gif" aparece de nuevo.

Yo creo que ( posiblemente) la solución sería trabajar con una variable de control, pero la verdad, no tengo ni idea como hacerlo.

A ver si tu o otras personas que sois unos expertos en javascript me podeis ayudar a solucionarlo.

Si quereis inserto el script para que lo podais visualizar y comprobar lo que sucede y asi poder tener una base más real en la cual trabajar.

Gracias por vuestro tiempo
  #4 (permalink)  
Antiguo 13/05/2004, 13:01
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Es extraño, la cookie "vive" hasta cerrar la ventana del navegador ....

claro, deja el código
  #5 (permalink)  
Antiguo 13/05/2004, 13:18
 
Fecha de Ingreso: mayo-2004
Mensajes: 22
Antigüedad: 20 años
Puntos: 0
Saludos nuevamente

Es el primer foro que visito ( y no son pocos ) que las respuestas son casi más rapidas que las preguntas.

A ver he modificado algunas cosas y ahora cuando cierro la ventada a traves del (X) del navegador no me carga de nuevo el " gif" y tendría que cargarlo.

Aquí va el script con el cual estoy haciendo las pruebas :

// expireDate = new Date
// expireDate.setMonth(expireDate.getMonth()+6)

cookieName = ""
if (document.cookie != "") {
cookieName = document.cookie.split("=")[1]
}

function setCookie() {
cookieName = "prueba"
document.cookie = "cookieName="+cookieName+""; // expires=" + expireDate.toGMTString()
}


function deletecookie(){
if (document.cookie != "") {
thisCookie = document.cookie.split("; ")
// expireDate = new Date
// expireDate.setDate(expireDate.getDate()-1)
for (i=0; i<thisCookie.length; i++) {
cookieName = thisCookie[i].split("=")[1]
document.cookie = "cookieName="+cookieName + ""; //expires=" + expireDate.toGMTString()


}
}
}

if (document.cookie != "" ){
document.write("¡Ya tengo la cookie!");
}
else {
if (!HVhpjs)
{
var HVhpjs = 1;
ads_hv_FactorX=20;

isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;

function ads_hv_cerrar(){
if(isNS4){
document.excitex.visibility="hidden";
}
else if (isNS6){
document.getElementById("excitex").style.visibilit y ="hidden";
}
else{
document.all.excitex.style.visibility = "hidden";
}
}
function ads_hv_setVals() {
// Con NS el innerHeigth esta definido
if (isIE4 || isIE5){
if (document.body){
innerWidth = document.body.clientWidth;
innerHeight = document.body.clientHeight;
} else{
innerWidth = 1004;
innerHeight= 578;
}
}
ads_hv_posX = 776;
ads_hv_posY = 0;
ads_hv_yanterior = 20;
ads_hv_mover();
}
function ads_hv_mover(){
var ads_hv_scrollPos = ads_hv_navDOM?self.pageYOffset:document.body.scrol lTop;
var ads_hv_posLeft = -ads_hv_posX +innerWidth + (ads_hv_navDOM?self.pageXOffset:document.body.scro llLeft);

if (Math.abs(ads_hv_scrollPos-ads_hv_yanterior) > ads_hv_FactorX){
var ads_hv_dist = 2 * parseInt( Math.abs(ads_hv_scrollPos-ads_hv_yanterior) / ads_hv_FactorX );
} else {
var ads_hv_dist = 1;
}

if(ads_hv_yanterior < (ads_hv_scrollPos+ads_hv_posY)){
ads_hv_yanterior+=ads_hv_dist;
ads_hv_moverElemento(ads_hv_yanterior,ads_hv_posLe ft);
} else if (ads_hv_yanterior > (ads_hv_scrollPos+ads_hv_posY)){
ads_hv_yanterior-=ads_hv_dist;
ads_hv_moverElemento(ads_hv_yanterior,ads_hv_posLe ft);
} else if (ads_hv_yanterior == (ads_hv_scrollPos+ads_hv_posY)){
ads_hv_moverElemento(ads_hv_yanterior,ads_hv_posLe ft);
}

setTimeout ("ads_hv_mover()",10);
}
function ads_hv_moverElemento(ads_hv_valTop,ads_hv_valLeft) {
if (isIE4){
document.all["excitex"].style.left = ads_hv_valLeft;
document.all["excitex"].style.top = ads_hv_valTop;
}
else if(isIE5){
document.getElementById("excitex").style.left = ads_hv_valLeft;
document.getElementById("excitex").style.top = ads_hv_valTop;
}
else if(isNS4){
document.excitex.left = ads_hv_valLeft;
document.excitex.top = ads_hv_valTop;
}
else if(isNS6){
document.getElementById("excitex").style.left = ads_hv_valLeft;
document.getElementById("excitex").style.top = ads_hv_valTop;
}
}
function ads_hv_markMe() {
if (screen.width >= 640 ){
window.onresize=ads_hv_setVals;
ads_hv_setVals();
}
}
if (isIE4 || isIE5){
if (document.body){
ads_hv_altura=document.body.clientHeight;
ads_hv_anchura=document.body.clientWidth;
}else{
if (frames.length==0){
ads_hv_altura=301;
ads_hv_anchura=451;
}else{
ads_hv_altura=0;
ads_hv_anchura=0;
}
}
}

if (isNS4 || isNS6){
ads_hv_altura=window.innerHeight;
ads_hv_anchura=window.innerWidth;
}

ads_hv_fecha = new Date();
ads_hv_bust = ads_hv_fecha.getTime();

if (ads_hv_altura>300 && ads_hv_anchura>450){
if (isNS4){
document.write('<POPUT name="excitex" POSITION=ABSOLUTE z-index=1000>');
document.write('<img name="layer.gif" border=0 usemap="#_HvMap_">');
document.write('<map name=\"_HvMap_\"><area shape=\"rect\" coords="279,302,364,318" href=\"#\" onMouseOver=\"{javascript:ads_hv_cerrar();javaScri pt:setCookie()}\" alt="Soy mayor de edad"><area shape=\"rect\" coords=\"389,302,477,318\" href=\"http://www.google.com" onMouseDown=\"javaScript:deletecookie()\" alt=\"Soy menor de edad\"></map>');
document.write('</POPUT>');
}
else{
document.write('<DIV id="excitex" name="excitex" style="position:absolute;visibility: visible" z-index=1000 >');
document.write('<img name="ads_hv_publi" src="prueba/layer.gif" border=0 usemap="#_HvMap_">');
document.write('<map name=\"_HvMap_\"><area shape=\"rect\" coords="279,302,364,318" href=\"#\" onMouseDown=\"{javaScript:ads_hv_cerrar();javaScri pt:setCookie()}\" alt="Soy mayor de edad"><area shape=\"rect\" coords=\"389,302,477,318\" href=\"http://www.google.com\" onMouseDown=\"javaScript:deletecookie()\" alt=\"Soy menor de edad\" ></map>');
document.write('</DIV>');
}
ads_hv_navDOM = isNS4 || isNS6;

var ads_hv_vr = navigator.userAgent.replace(/mac/gi,"");
if (navigator.userAgent != ads_hv_vr)
{window.onload=ads_hv_markMe;} // safety for Mac IE4.5
ads_hv_markMe();
}
}

}

Reitero mis felicitaciones y mi agracimiento a vuestra ayuda .
  #6 (permalink)  
Antiguo 18/05/2004, 12:45
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola de nuevo

hice un ejemplo para que probaras tú mismo y con la coña de que mozilla y ns no hacían ni caso se ha demorado el tema y hasta hoy no he tenido ocasión de volver a ponerme en ello.

Mírate este ejemplo

http://www.tunait.com/pruebas/excitex.htm

Lo que me mosquea es lo de mozilla y ns, pero acabo de comprobar que me siguen devolviendo las cookies vacías incluso en mi sitio (que está lleno de cookies por tós laos y me lo sigue mostrando vacío) así que creo que es un problema mío que deben andar medio desactivadas las cookies en esos navegadores (no me muestra ni las cookies colocadas mediante asp)

De todas formas, usas algún lenguaje del lado del servidor en tu sitio?
  #7 (permalink)  
Antiguo 18/05/2004, 14:34
 
Fecha de Ingreso: mayo-2004
Mensajes: 22
Antigüedad: 20 años
Puntos: 0
Saludos y gracias por el interés que has demostrado en ayudarme a solucionar el problema.

Ya puestos te pediría que le dieras un vistazo a este script.

Lo que quiero es quitarle le fecha de expiración pero no se como hacerlo, porque todas las modificaciones que hago me da error y lo que quiero es que la cookie sea una cookie de sesión .

<script LANGUAGE="JAVASCRIPT" TYPE="TEXT/JAVASCRIPT">

expireDate = new Date
expireDate.setMonth(expireDate.getMonth()+6)

cookieName = ""
if (document.cookie != "") {
cookieName = document.cookie.split("=")[1]
}

function setCookie() {
cookieName = "prueba"
document.cookie = "cookieName="+cookieName+";expires=" + expireDate.toGMTString()
}

// Delete the cookie
function deletecookie(){
if (document.cookie != "") {
thisCookie = document.cookie.split("; ")
expireDate = new Date
expireDate.setDate(expireDate.getDate()-1)
for (i=0; i<thisCookie.length; i++) {
cookieName = thisCookie[i].split("=")[1]
document.cookie = "cookieName="+cookieName + ";expires=" + expireDate.toGMTString()

}
}
}
</script>

Gracias por tu tiempo .

Última edición por excitex; 18/05/2004 a las 14:57
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:45.