Hola, estoy teniendo problemas con la creacion de una cookie.
Basicamente lo que hace es guardar la informacion de 3 textbox (por ahora)y colocarla en un div.
El tema es que cuando tengo abierta la ventana del ie7 (el desarrollo del sistema solo sera para explorer, no firefox ni otro explorador) cuando agrego los elementos que estan en el textbox al div lo hace bien, si actualizo la pagina los mantiene, pero al cerrar y abrir la ventana pierdo esos valores.
Cuando voy a fijarme en los temporale donde guarda las cookie no me aparece. Probe con unas funciones para crear y leer cookies y si esta funcionando. Pongo el codigo para ver que estoy haciendo mal.
Código:
<style type="text/css">
.flotante
{
background: beige;
border: solid 1px black;
padding: 5px;
position:fixed;
width:995px;
height:50px;
top:85%;
}
</style>
<script type="text/javascript">
function Validate()
{
//Obtenemos los valores de los Textbox
var txt1 = document.getElementById('txt1').value;
var txt2 = document.getElementById('txt2').value;
var txt3 = document.getElementById('txt3').value;
//Creamos la Cookie
createCookie();
}
function createCookie()
{
var Cookie = document.cookie;
if(Cookie !="")
{
//Si la cookie existe se llama a la funcion deleteCookie y se la elimina
deleteCookie(Cookie);
}
//Definimos un array en onde se almacenaran los valores de los Textboxs
var ArrayValores = new Array() ;
ArrayValores[0] = document.getElementById('txt1').value;
ArrayValores[1] = document.getElementById('txt2').value;
ArrayValores[2] = document.getElementById('txt3').value;
//Establecemos la fecha de expiracion
FechaLimiteCookie = new Date;
FechaLimiteCookie.setMonth(FechaLimiteCookie.getMonth() + 3);
var ElementosCookie=ArrayValores;
//Agrega los elementos a la Cookie
ElementosCookie= escape(ElementosCookie);
document.cookie = ElementosCookie;
//leo Cookie
readCookie();
}
function deleteCookie(Cookie)
{
FechaBorraCookie = new Date;
//Establece una fecha anterior para que se borre la cookie actual
FechaBorraCookie.setMonth(FechaBorraCookie.getMonth() - 1);
document.cookie = Cookie += "=; expires=" + FechaBorraCookie.toGMTString();
}
function readCookie()
{
//Verificamos si existe la cookie, en caso de no existir se llama a la funcion CreateCookie()
if(document.cookie)
{
//Obtengo valor de cookie
var cookie = document.cookie;
//Se decodifica la cookie
var fixed_cookie = unescape(cookie);
//Separamos los elementos de la cookie
var ElementosCookie= fixed_cookie.split(',');
alert(ElementosCookie);
//Obtenemos Elementos del Div, en caso de encontrar se llama a la funcion RefreshDIV
//para eliminar el contenido y actualizarlo con los nuevos valores de la cookie
var node = document.getElementById('divFlotante');
if(node.hasChildNodes())
RefreshDIV(node);
//Creamos una lista con los elementos de la Cookie
var CrearUL = document.createElement('ul');
var CrearLI;
var ElementoNodo;
//Recorre los elementos de la cookie
for(var i=0; i<ElementosCookie.length; i++)
{
CrearLI = document.createElement('li');
ElementoNodo = document.createTextNode(ElementosCookie[i]);
//Preguntamos si el elemento en esa posición es distinto de vacio, en el caso de ser vacio lo ignoramos y no lo agregamos
if(ElementoNodo.nodeValue != "")
{
CrearLI.appendChild(document.createTextNode(ElementosCookie[i]));
CrearUL.appendChild(CrearLI);
}
}
//Obtenemos el Div que deseamos usar para luego, poder escribir el contenido de la cookie
document.getElementById('divFlotante').appendChild(CrearUL);
}
else
{
alert("no encontre cookie");
createCookie();
}
function RefreshDIV(node)
{
//Se recorre los elementos agregados al div para borrarlos, cuando no se encuentren mas valores, sale del bucle
while(node.firstChild)
{
node.removeChild(node.firstChild);
}
}
}
</script>
<body onload="javascript:readCookie()">
<div id='texto' height="100%" width="100px" >
<input type="text" id="txt1" value="" /> <input type="button" id="btnAdd" value="add" onclick="javascript:Validate()" /><br>
<input type="text" id="txt2" value="" />
<input type="text" id="txt3" value="" />
<div id='ElementosCookie' height="25px" width="480px">
</div>
</body>
</div>
<div class="flotante" id="divFlotante">texto flotante</div>