Foros del Web » Programando para Internet » Javascript »

Ayuda con script para css

Estas en el tema de Ayuda con script para css en el foro de Javascript en Foros del Web. Buenas tardes... Desesperado aqui ando ya con el maldito IE. El tema, es que tengo un script que pulsando un enlace con el evento onclick ...
  #1 (permalink)  
Antiguo 17/05/2007, 06:33
 
Fecha de Ingreso: julio-2006
Ubicación: Desde mi casa
Mensajes: 14
Antigüedad: 17 años, 9 meses
Puntos: 0
Ayuda con script para css

Buenas tardes...

Desesperado aqui ando ya con el maldito IE.

El tema, es que tengo un script que pulsando un enlace con el evento onclick me permite cambiar el tamaño del texto, cambiando para ello la hoja de estilos. Este cambio de texto se mantiene, a su vez, cuando se cambia de pagina usando una cookie que guarda el estilo que hay que aplicar.

Hasta aqui todo bien, en Firefox funciona todo bien, y en IE el cambio de tamaño funciona correctamente, pero cuando cambias de pagina, se pierde la hoja de estilos.

En principio tengo localizado el problema, pero no se porque sucede. El problema esta en que cuando cambias de pagina, despues de leer la cookie correctamente, se llama a la funcion activarCSS; y en esta, se recorren en el "for" todos los elementos link, desactivando todos aquellos cuyo atributo "title" no es igual, que el parametro que le hemos pasado a la funcion.

Pero cuando llega al elemento que si cumple la condicion, y realiza la instruccion...

links[i].disabled = false;

no activa en realidad dicho elemento, por lo que no se aplica el estilo en IE, mientras que en Firefox, como he dicho antes funciona sin problemas.

La verdad es que he probado casi de todo, asi que ya no se ni que hacer.

Saludos...y siento lo del tocho que he soltado.


El codigo js es...

He creado unos alert() para ir viendo que valor se obtiene depues de leer la cookie, y cual es el nombre de la hoja css, antes de activarla o desactivarla.

Código PHP:
function activarCSS(title) { 
    
// Obtengo los elementos link 
    
var links document.getElementsByTagName("link"); 
    
    
// Los recorro todas las hojas css y el que tenga  
    // el title que queremos la activamos 
    // el resto las desactivamos 
    
for (var i=0i<links.lengthi++) { 
        if (
links[i].getAttribute("title") == title) { 
            
alert("Cookie: "+title+" --- Css:"+links[i].getAttribute("title"));
            
links[i].disabled false;
        } 
        else { 
            
alert("Cookie: "+title+" --- Css:"+links[i].getAttribute("title"));
            
links[i].disabled true
        } 
    }
    
createCookie('estilo',title); 
}

function 
createCookie(name,value,days) {
    if (
days) {
        var 
date = new Date();
        
date.setTime(date.getTime()+(days*24*60*60*1000));
        var 
expires "; expires="+date.toGMTString();
    }
    else var 
expires "";
    
document.cookie name+"="+value+expires+"; path=/";
}


function 
readCookie(name) {
    var 
nameEQ name "=";
    var 
ca document.cookie.split(';');
    for(var 
i=0;ca.length;i++) {
        var 
ca[i];
        while (
c.charAt(0)==' 'c.substring(1,c.length);
        if (
c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return 
"";
}

function 
aplicarEstilo() {
  var 
micss readCookie('estilo');
  if (
micss == "")
  {
    
micss 'normal';
  }
  
alert("El valor de la cookie es: "+micss);
  
activarCSS(micss); 

Última edición por kerfer; 17/05/2007 a las 06:41
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:29.