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=0; i<links.length; i++) {
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;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = 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);