Foros del Web » Programando para Internet » Javascript »

sesiones en javascript?

Estas en el tema de sesiones en javascript? en el foro de Javascript en Foros del Web. cómo se crea y modifica una sesión en javascript?...
  #1 (permalink)  
Antiguo 24/08/2005, 17:27
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
sesiones en javascript?

cómo se crea y modifica una sesión en javascript?
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #2 (permalink)  
Antiguo 25/08/2005, 09:16
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
¿No se puede hacer el JavaScript?
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #3 (permalink)  
Antiguo 25/08/2005, 09:39
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é tal flashera,

que yo sepa, no hay sesiones en javascript. Lo más parecido son las cookies de sesión que finalizan al cerrar la ventana del navegador. Pero sesiones como las de los lenguajes del lado del servidor ... yo diría que no existe tal cosa en javascript (client-side)

un saludo
  #4 (permalink)  
Antiguo 25/08/2005, 09:59
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
Hola tunait;
Me gustaría saber entonces como se crea y modifica una cookie de sesión.
desde ya gracias por contestar!!
Saludos
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #5 (permalink)  
Antiguo 25/08/2005, 10:24
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
Si me cuentas un poco por encima cuál es la idea de lo que quieres hacer te pongo un ejemplo y te explico un poco
  #6 (permalink)  
Antiguo 25/08/2005, 11:06
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
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:
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;
}
}
}
y lo llamo de la siguiente manera...
Código:
onClick="setActiveStyleSheet('verde')"
(este sería el caso del estilo 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
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #7 (permalink)  
Antiguo 25/08/2005, 11:40
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
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:
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)
}
 
Por no montar un tinglado de hojas de estilos no lo he probado, yá me contarás.

Un saludo
  #8 (permalink)  
Antiguo 25/08/2005, 12:34
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años
Puntos: 1
Lamentablemente no anda, y como no entiendo nada de javascript no puedo ver en donde se encuentra el error...
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #9 (permalink)  
Antiguo 25/08/2005, 13:10
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
Hay algún lugar donde poder verlo en marcha? aunque sea sin lo de la cookie
  #10 (permalink)  
Antiguo 26/08/2005, 00:13
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
ok, yá veo lo que ha pasado, puse una condición al revés

Código:
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)
}
en esta última condición lo puse así

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
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 03:32.