JavaScript - Javascript manejo de cookies

 
Vista:

Javascript manejo de cookies

Publicado por Fede Ramirez (11 intervenciones) el 24/04/2015 23:14:50
Buenas, hice 3 funciones sobre el manejo de cookies con javascript, pero no me funciona ni siquiera la de guardar. Necesito que me expliquen porque no funciona porque ya me tiene de los pelos :P. A continuacion les dejo el codigo:

JAVASCRIPT

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
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}
 
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}
 
function deleteCookie(cname) {
    document.cookie = cname + "=; expires=-1";
}
 
window.onload = function(){
	var btn = document.getElementById("btnGuardar");
	btn.onclick = function(){
		var nombre = document.getElementById("InputNombre").value;
 
		setCookie("Nombre",nombre,10);
		alert(document.cookie);
	}
}

HTML

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
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
<title>Registro</title>
<link rel="stylesheet" type="text/css" href="./css/estilostp2.css"/>
<script type="text/javascript" src="./js/funcionestp2.js"></script>
</head>
<body>
<div id="header">
	<a href="tp2-ej1.html"><span id="textoheader">Nombre de la web</span></a>
</div>
 
 
<div id="ContenedorFormulario">
<form id="frmContacto">
	<div id="headercontacto">
		Almacenar Nombre En Una Cookie
	</div>
 
	<div class="seccion">
		<div class="labels"><label for="InputNombre">Nombre:</label></div>
		<input type="text" class="w50" id="InputNombre"/>
	</div>
	<div class="seccion">
		<input type="submit" class="Enviar" value="Guardar" id="btnGuardar" />
	</div>
 
</form>
</div>
 
<div id="footer">
	<span id="textofooter">FOOTER</span>
</div>
</body>
</html>

PD: ¿Es necesario usar algo a parte de html y javascript para que funcione?. Porque me dijeron que lo tengo que hacer solo con esas 2 cosas.
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
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Javascript manejo de cookies

Publicado por Vainas (258 intervenciones) el 25/04/2015 10:31:14
Buenas:

Tu codigo funciona mira: http://jsfiddle.net/72hd5w0p/

Lo nuico que te falta es que estas trabajando con un formulario en html y el input es de tipo submit. Un formulario con un boton submit lo que intentara es enviarse al servidor para que sea procesado el formulario. Si quieres detener su comportamiento por defecto tienes que usar event.preventDefault(); (linea 29) dentro del boton, esto detiene que el formulario sea enviado al servidor. El objeto event viene del evento onclick (linea 23), cuando se ejecuta el onclick se envia a la funcion este objeto.

En general, lo que le pasaba a tu codigo es que la pagina se refrescaba al intentar procesar el formulario.

Ahora solo te queda crear botones para borrar y mostrar la cookie. Ya casi lo tienes!!!

Saludos.

Nota: para el codigo puedes usar el resaltador de codigo que tiene esta web.
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

Javascript manejo de cookies

Publicado por Fede Ramirez (11 intervenciones) el 25/04/2015 18:57:43
Buenas sigue sin funcionarme. Nose porque
sin-titulo-1296659

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
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}
 
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}
 
function deleteCookie(cname) {
    document.cookie = cname + "=; expires=-1";
}
 
window.onload = function(){
	var btn = document.getElementById("btnGuardar");
	btn.onclick = function(){
		var nombre = document.getElementById("InputNombre").value;
 
		setCookie("Nombre",nombre,10);
		alert(document.cookie);
		event.preventDefault();
	}
}

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
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
<title>Registro</title>
<link rel="stylesheet" type="text/css" href="./css/estilostp2.css"/>
<script type="text/javascript" src="./js/funcionestp2.js"></script>
</head>
<body>
<div id="header">
	<a href="tp2-ej1.html"><span id="textoheader">Nombre de la web</span></a>
</div>
 
 
<div id="ContenedorFormulario">
<form id="frmContacto">
	<div id="headercontacto">
		Almacenar Nombre En Una Cookie
	</div>
 
	<div class="seccion">
		<div class="labels"><label for="InputNombre">Nombre:</label></div>
		<input type="text" class="w50" id="InputNombre"/>
	</div>
	<div class="seccion">
		<input type="submit" class="Enviar" value="Guardar" id="btnGuardar" />
	</div>
 
</form>
</div>
 
<div id="footer">
	<span id="textofooter">FOOTER</span>
</div>
</body>
</html>
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 Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Javascript manejo de cookies

Publicado por Vainas (258 intervenciones) el 25/04/2015 21:32:01
Buenas de nuevo:

del JS linea 25:

1
2
btn.onclick = function(event){
...


Despues ya lo puedes usar abajo.

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

Javascript manejo de cookies

Publicado por Fede Ramirez (11 intervenciones) el 26/04/2015 01:24:56
No... Me sigue mostrando el alert en blanco :( . Lo probe en IE y funciona pero en el google chrome no :S . Y lo necesito para chrome
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 Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Javascript manejo de cookies

Publicado por Vainas (258 intervenciones) el 26/04/2015 09:40:35
Pues vaya....

una cosa mas que se me ocurre. cambia el script al final. asi:

HTML:
1
2
3
4
....
<script type="text/javascript" src="./js/funcionestp2.js"></script>
</body>
</html>


A ver si con esta va la vencida ya
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 Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Javascript manejo de cookies

Publicado por Vainas (258 intervenciones) el 27/04/2015 21:14:03
Buenas:

A mi me funciona. No ejecutes el archivo tal cual por q no funcionara. Si tienes instalado algun xampp o parecido ejecutalo desde alli. Podrias comprobar en chrome en la consola que error te da si eso.

En la ruta no debe salir C:\....\index.html sino localhost/.....index.html

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Javascript manejo de cookies

Publicado por Fede Ramirez (11 intervenciones) el 27/04/2015 23:12:24
Excelente! Muchas Gracias!. Por Fin!
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