Desde el principio estaba mosqueado porque no funcionaba el c�digo si lo pon�a funer del onload:
var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);Por l�gica deber�a funcionar (leer la cookie, asignarla a la variable title y pasarla como par�metro a la funcion setActiveStyleSheet). Pero nada, no funcionaba. Despu�s de un rato d�ndole vueltas me di cuenta de que el problema no estaba en el script, sino en el documento HTML, en el orden de carga de las cosas. Primero cargaba el script y despu�s las hojas de estilo, y claro, �como va a activar una hoja que todav�a no esta cargada? Simplemente haciendo que cargue primero las CSS funciona a las mil maravillas.
Fin de la lecci�n tonta del d�a. Un saludo a todos
tomcask o_o wrote:
Podridas hacer un par de cosas, te escribo el algoritmo chapucero y tu lo limpias :)
<title></title> <script> if (readCookie("style")==null){ document.write(<style importc .... (EL ESTILO POR DEFECTO) ...> } </script> <body>
Con este c�digo solo tendr�as que comprobar q la coockie es null eso quiere decir que no tiene estilo definido, en el caso que lo tenga no inserta hoja de estilos, y al final cuando el window esta cargado la funci�n lo carga. Podr�amos insertar la hoja correcta directamente, pero podr�amos meternos en problemas de carga del documento etc...
Espero ayudarte aunque mi contestaci�n ha sido un poco rapada.
Saludos.
Txuma Campos [altctrlsupr.com] wrote:
A ver, una pregunta para los que control�is de JS.
Estoy implementanto el StyleSwitcher de AlistApart [1] en un proyecto. Para quien no lo sepa, es un sistema que permite cargar mediante Javascript hojas de estilo alternativas (os pongo tambi�n al final del email la traducci�n al castellano del art�culo [2] y un enlace directo para que descargu�is el script [3]). Entre las funcionalidades de este sistema est� guardar en una cookie el valor de la �ltima hoja de estilos elegida por el usuario para que, al recargar la p�gina o moverte por otras p�gina del sitio, autom�ticamente aplique esa hoja.
El problema que me surge es que el evento que carga la hoja es un window.onload.
window.onload = function(e) { var cookie = readCookie("style"); var title = cookie ? cookie : getPreferredStyleSheet(); setActiveStyleSheet(title); }
Esto produce un peque�o efecto de 'parpadeo', es decir, primero aplica la hoja de estilos por defecto y cuando el documento termina de cargar aplica la hoja almacenada en la cookie.
El propio art�culo dice que esto podr�a cambiarse para que el documento se muestre directamente con la hoja alternativa, pero por m�s que lo intento no s� c�mo conseguirlo. A ver si alguien puede echarme una mano.
Un saludo a todos
[1] http://www.alistapart.com/articles/alternate/ [2] http://kusor.net/traducciones/ala.es/alternate/ [3] http://www.alistapart.com/d/alternate/styleswitcher.js
_______________________________________________
Lista de distribuci�n Ovillo
Para escribir a la lista, envia un correo a [email protected]
Puedes modificar tus datos o desuscribirte en la siguiente direcci�n: http://ovillo.org/mailman/listinfo/ovillo
_______________________________________________
Lista de distribuci�n Ovillo
Para escribir a la lista, envia un correo a [email protected]
Puedes modificar tus datos o desuscribirte en la siguiente direcci�n: http://ovillo.org/mailman/listinfo/ovillo
_______________________________________________ Lista de distribuci�n Ovillo Para escribir a la lista, envia un correo a [email protected] Puedes modificar tus datos o desuscribirte en la siguiente direcci�n: http://ovillo.org/mailman/listinfo/ovillo
