JavaScript - El mensaje de las cookies no desaparece

 
Vista:

El mensaje de las cookies no desaparece

Publicado por Maria (3 intervenciones) el 10/05/2016 14:20:05
Hola programadores.

Lo primero, darles las gracias de antemano.

Tengo un problema a la hora de programar el aviso emergente de las cookies (el típico de "Esta web utiliza cookies. Si sigues navegando, entendemos que aceptas estas condiciones de uso").

El aviso me aparece perfectamente y funciona al darle al ok (desaparece), etc. Mi problema es que al refrescar la web el aviso vuelve a aparecer, es decir no guarda las cookies. He intentado con muchísimos ejemplo de programación cogidos de diferentes web pero siempre pasa lo mismo, al volver a cargar la web el mensaje aparce de nuevo aunque el usuario haya aceptado.

¿A qué puede deberse? He mirado en mil sitios y no encuentro solución... y como os decía, he probado con varios códigos que en su web correspondiente sí funcionan pero a mí no me cogen la cookies...

Muchisimas gracias de nuevo.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

El mensaje de las cookies no desaparece

Publicado por Maria (3 intervenciones) el 10/05/2016 21:16:07
Muchísimas gracias por tu tiempo xve.

Mi problema es con el típico aviso emergente de las cookies.

Tengo este código (aunque he probado con muchos y siempre encuentro el mismo problema. Este código lo he cogido de la web http://politicadecookies.com/descargas.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es">
<head>
<title>Cookies</title>
 
<script type="text/javascript">
	function getCookie(c_name){
		var c_value = document.cookie;
		var c_start = c_value.indexOf(" " + c_name + "=");
		if (c_start == -1){
			c_start = c_value.indexOf(c_name + "=");
		}
		if (c_start == -1){
			c_value = null;
		}else{
			c_start = c_value.indexOf("=", c_start) + 1;
			var c_end = c_value.indexOf(";", c_start);
			if (c_end == -1){
				c_end = c_value.length;
			}
			c_value = unescape(c_value.substring(c_start,c_end));
		}
		return c_value;
	}
 
	function setCookie(c_name,value,exdays){
		var exdate=new Date();
		exdate.setDate(exdate.getDate() + exdays);
		var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
		document.cookie=c_name + "=" + c_value;
	}
 
	if(getCookie('tiendaaviso')!="1"){
		document.getElementById("barraaceptacion").style.display="block";
	}
	function PonerCookie(){
		setCookie('tiendaaviso','1',365);
		document.getElementById("barraaceptacion").style.display="none";
	}
</script>
 
<style>
	#barraaceptacion {
		display:none;
		position:fixed;
		left:0px;
		right:0px;
		bottom:0px;
		padding-bottom:20px;
		width:100%;
		text-align:center;
		min-height:40px;
		background-color: black;
		/*background-color: rgba(0, 0, 0, 0.5);*/
		color:#fff;
		z-index:99999;
	}
 
	.inner {
		width:100%;
		position:absolute;
		padding-left:5px;
		font-family:verdana;
		font-size:12px;
		top:30%;
	}
 
	.inner a.ok {
		padding:4px;
		color:#00ff2e;
		text-decoration:none;
	}
 
	.inner a.info {
		padding-left:5px;
		padding-right:5px;
		text-decoration:none;
		color:#faff00;
	}
</style>
 
</head>
 
<body>
 
<div id="barraaceptacion" style="display: block;">
    <div class="inner">
        Solicitamos su permiso para obtener datos estadísticos de su navegación, en cumplimiento del Real
        Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.
        <a href="javascript:void(0);" class="ok" onclick="PonerCookie();">OK</a> |
        <a href="cookies.html" class="info">Más información</a>
    </div>
</div>
</body>
</html>


El problema es que muestra la barra del aviso de las cookies con su "Aceptar" y su "más información" y al pinchar el "Aceptar" desaparece la barra, pero al volver a cargar la página el mensaje de las cookies vuelve a aparecer, no lo borra.

Me "mosquea" un poco el valor 'tiendaaviso' del javascript porque no entiendo de donde saca este valor.... he revisado el código que tú me has dejado y no encuentro ninguna relación entre lo tuyo y este 'tiendaaviso' que pone aquí....

MIL GRACIAS DE NUEVO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

El mensaje de las cookies no desaparece

Publicado por xve (2100 intervenciones) el 11/05/2016 07:57:23
Hola Maria, no es problema de la cookie, si no que es problema de tu condicional...

tienes que cambiar:
1
2
3
if(getCookie('tiendaaviso')!="1"){
	document.getElementById("barraaceptacion").style.display="none";
}
por:
1
2
3
4
5
window.onload=function(){
	if(getCookie('tiendaaviso')=="1"){
		document.getElementById("barraaceptacion").style.display="none";
	}
}

Fijate que lo que tu haces, es que cuando no haya cookie (!=1) entonces no lo muestras, y es al reves, cuando la cookie devuelve el 1 lo escondes.
Pero no puedes ejecutar tu condicional, hasta que no se haya cargado el contenido html (DOM)

No se si me he sabido explicar... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El mensaje de las cookies no desaparece

Publicado por Maria (3 intervenciones) el 11/05/2016 21:40:42
Un millón de gracias!!!! Por la corrección y por la explicación!!!! Si no fuera por gente como tú, los novatos estaríamos perdidos!!!!
Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El mensaje de las cookies no desaparece

Publicado por Luis (3 intervenciones) el 13/02/2017 07:52:48
Hola, He seguido todas esas instrucciones para colocar en mi humilde web la barra de cookies, y nada; desaparece solamente hasta recargar la página. Podrias darme una pista? O ayuda adicional. Agradecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

El mensaje de las cookies no desaparece

Publicado por xve (2100 intervenciones) el 13/02/2017 15:22:12
Hola Luis, no se como lo tienes, pero solamente tienes que mostrar el tema de la cookie si no existe dicha cookie para saber que el usuario lo ha visto...

creas una cookie cuando muestras el mensaje?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El mensaje de las cookies no desaparece

Publicado por Luis (3 intervenciones) el 13/02/2017 20:01:08
Tengo esto en Head:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="es">
<head>
<script type="text/javascript">
	function getCookie(c_name){
		var c_value = document.cookie;
		var c_start = c_value.indexOf(" " + c_name + "=");
		if (c_start == -1){
			c_start = c_value.indexOf(c_name + "=");
		}
		if (c_start == -1){
			c_value = null;
		}else{
			c_start = c_value.indexOf("=", c_start) + 1;
			var c_end = c_value.indexOf(";", c_start);
			if (c_end == -1){
				c_end = c_value.length;
			}
			c_value = unescape(c_value.substring(c_start,c_end));
		}
		return c_value;
	}
 
	function setCookie(c_name,value,exdays){
		var exdate=new Date();
		exdate.setDate(exdate.getDate() + exdays);
		var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
		document.cookie=c_name + "=" + c_value;
	}
 
	if(getCookie('tiendaaviso')!="1"){
		document.getElementById("barraaceptacion").style.display="block";
	}
	function PonerCookie(){
		setCookie('tiendaaviso','1',365);
		document.getElementById("barraaceptacion").style.display="none";
	}
</script>
 
<style>
	#barraaceptacion {
		display:none;
		position:fixed;
		left:0px;
		right:0px;
		bottom:0px;
		padding-bottom:20px;
		width:100%;
		text-align:center;
		min-height:40px;
		background-color: black;
		/*background-color: rgba(0, 0, 0, 0.5);*/
		color:#fff;
		z-index:99999;
	}
 
	.inner {
		width:100%;
		position:absolute;
		padding-left:5px;
		font-family:verdana;
		font-size:12px;
		top:30%;
	}
 
	.inner a.ok {
		padding:4px;
		color:#00ff2e;
		text-decoration:none;
	}
 
	.inner a.info {
		padding-left:5px;
		padding-right:5px;
		text-decoration:none;
		color:#faff00;
	}
</style>
</head>




Y Esto en el BODY:

1
2
3
4
5
6
7
8
9
<body>
<div id="barraaceptacion" style="display: block;">
    <div class="inner">
        "Mi mensaje"
        <a href="javascript:void(0);" class="ok" onclick="PonerCookie();"><button><span style="color:#0000FF;">"Mi Botón"</span></button></a> |
        <a href="http://www.aboutcookies.org" class="info"><button><span style="color:#0000FF;">"Mi Botón"</span></button></a>
    </div>
</div>
</body>




Y sigue el mismo problema.. ¿Que debo hacer? Agradecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El mensaje de las cookies no desaparece

Publicado por Luis (3 intervenciones) el 14/02/2017 09:10:35
Por cierto estuve haciendo varios chequeos y noté que la función de crear o poner cookie "tiendaaviso" se realiza. Pero sucede algo raro, por que busco en las cookies y sigue ahí; aunque refresque o actualice la página, la cookie "tiendaaviso" que fue creada con la función "PonerCookie()", sigue intacta.

No se que pasa. Aunque la Cookie permanece aun después de actualizar la página sigue apareciendo el mensaje de las cookies.

Sinceramente agradezco tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar