| |||
sesiones en javascript? cómo se crea y modifica una sesión en javascript? |
| |||
¿No se puede hacer el JavaScript? |
| |||
Hola tunait; Me gustaría saber entonces como se crea y modifica una cookie de sesión. desde ya gracias por contestar!! Saludos |
| |||
Hola Tunait. Bueno; te cuento lo que quiero hacer... Resulta que tengo un diseño basado en CSS y doy la oportunidad al visitante de cambiar el diseño de color basado en sus gustos. Entonces ofrezco 4 estilos diferentes... el rojo, el verde, el azul y el amarillo. Como estilo predeterminado está el rojo, y los otros tres estan como alternativos... Puse el siguiente script:
Código:
y lo llamo de la siguiente manera...function setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } }
Código:
(este sería el caso del estilo verde)onClick="setActiveStyleSheet('verde')" Hasta aca anda todo bien; pero me dí cuenta que cuando iba a otra sección del mismo sitio, la página volvía al estilo como defecto que sería el rojo. Entonces se me ocurrió implementar una cookie que guarde las preferencias del usuario con respecto al color que él mismo eligió; y así surgió la pregunta en forosdelweb... Espero que entiendas la explicación!! saludos |
| ||||
Bueno, no lo he probado pero creo que debería de funcionar. A la función que tenías el agrego una línea que se encarga de poner la cookie de sesión con el valor del estilo escogido. Faltará entonces que en todas las páginas se verifique si existe la cookie y, si existe, que llame a la función pasándole como parámetro el valor de la cookie. Te habría de quedar algo así
Código:
Por no montar un tinglado de hojas de estilos no lo he probado, yá me contarás.function setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } document.cookie = 'estiloCSS=' + title; //aquí ponemos la cookie } //y aquí verificamos si la cookie existe var galleta = document.cookie; galleta = galleta.split(';'); estiloCSS = ''; for(m=0; m<galleta.length; m++){ if(galleta[m].split('=')[0] == 'estiloCSS'){ estiloCSS = galleta[m].split('=')[1]; break; } } //en caso de existir la cookie llama a la función que cambia la hoja de estilos if(estiloCSS == ''){ setActiveStyleSheet(estiloCSS) } Un saludo |
| |||
Lamentablemente no anda, y como no entiendo nada de javascript no puedo ver en donde se encuentra el error... |
| ||||
ok, yá veo lo que ha pasado, puse una condición al revés
Código:
en esta última condición lo puse asífunction setActiveStyleSheet(title) { var i, a, main; for(i=0; (a = document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; if(a.getAttribute("title") == title) a.disabled = false; } } document.cookie = 'estiloCSS=' + title; //aquí ponemos la cookie } //y aquí verificamos si la cookie existe var galleta = document.cookie; galleta = galleta.split(';'); estiloCSS = ''; for(m=0; m<galleta.length; m++){ if(galleta[m].split('=')[0] == 'estiloCSS'){ estiloCSS = galleta[m].split('=')[1]; break; } } //en caso de existir la cookie llama a la función que cambia la hoja de estilos if(estiloCSS != ''){ setActiveStyleSheet(estiloCSS) } if(estiloCSS == '') ...y tenía que estar así if(estiloCSS != '') funciona ok, al final monté el tinglado. Te dejé un ejemplo en marcha www.tunait.com/pruebas/flashera/ yá me contarás un saludo |