Style Switcher con jQuery

0 - , , , , - 06/03/2009 17:15:16

En Kelvinluck.com me he encontrado con una muy sencilla forma de hacer un style swither (o intercambiador de estilos) aprovechando la potencia de selección de jQuery. El ejemplo también utiliza cookies con lo que el estilo elegido por el visitante es almacenado para mostrarselo por defecto la próxima vez que visita la página.

La aplicación del ejemplo es muy sencilla. Primero incluimos el fichero de jQuery.

<script type="text/javascript" src="jquery-1.2.6.js"></script>

Incluimos tanto el estilo que se mostrará la primera vez que el visitante acceda a la página como los estilos alternativos que deseemos.

<link rel="stylesheet" type="text/css" href="Estilos.css" title="Normal" media="screen" />
<link rel="alternate stylesheet" type="text/css" href="EstiloRojo.css" title="Rojo" media="screen" />
<link rel="alternate stylesheet" type="text/css" href="EstiloNegro.css" title="Negro" media="screen" />

Lo importante es asignarle un atributo "title" con un nombre que posteriormente utilizaremos para identificarlo.

Lo siguiente es crear los enlaces, que deben tener la clase "styleswitch" y el atributo "rel" con el nombre que aparece en el "title" del estilo al que vamos a pasar.

<ul>
<li><a href="Ejemplo.html" rel="Normal" class="styleswitch">Estilo 1</a></li>
<li><a href="Ejemplo.html" rel="Rojo" class="styleswitch">Estilo 2</a></li>
<li><a href="Ejemplo.html" rel="Negro" class="styleswitch">Estilo 3</a></li>
</ul>

Ahora tan sólo queda incluir el script de Kelvinluck.com, que se ayuda de un par de funciones de Quirksmode.

<script language="javascript">
/**
* Styleswitch stylesheet switcher built on jQuery
* Under an Attribution, Share Alike License
* By Kelvin Luck ( http://www.kelvinluck.com/ )
**/
(function($){
$(document).ready(function() {
	$('.styleswitch').click(function()
	{
		switchStylestyle(this.getAttribute("rel"));
		return false;
	});
	var c = readCookie('style');
	if (c) switchStylestyle(c);
});
function switchStylestyle(styleName) {
	$('link[@rel*=style][title]').each(function(i) 
	{
		this.disabled = true;
		if (this.getAttribute('title') == styleName) this.disabled = false;
	});
	createCookie('style', styleName, 365);
}
})(jQuery);
// cookie functions http://www.quirksmode.org/js/cookies.html
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 null;
}
function eraseCookie(name){
	createCookie(name,"",-1);
}
// /cookie functions
</script>

Ya tenemos realizado un intercambiador de estilos que recordará nuestra elección cada vez que carguemos la página.

Ver Ejemplo en funcionamiento » »

CS Lite: Manejo de cookies con Firefox

0 - , , - 17/04/2008 11:54:06

Las cookies, en bastantes casos, son usadas para monitorizar nuestra actividad en internet. Una buena práctica es bloquear las cookies de aquellos sitios web donde no necesitemos estar autentificados. CS Lite es una extensión de Firefox que nos puede ser de gran ayuda a la hora de realizar un contrl de cookies. Tras instalarse añade un icono en la barra de estado, para acceder a sus características, pudiendo permitir cookies de una página, permitirlas temporalmente o bloquearlas. Uno de los aspectos más interesantes es que dispone de una lista negra de sitios, descargable y actualizable desde internet. Esta lista contiene cientos de sitios que utilizan las cookies para monitorizar la actividad de sus visitantes.
En el aspecto del desarrollo web, también dispone la posibilidad de ver y editar las cookies. Interesante si en nuestro desarrollo pensamos hacer uso de ellas.

CS Lite » »

Comprobar si las cookies están habilitadas

0 - , , - 14/09/2005 00:00:00

Este script averigua si el usuario tiene habilitadas las cookies en su navegador y, si no es así, muestra un mensaje de alerta advirtiendo que éstas son necesarias para el correcto funcionamiento de la web.

<script type="text/javascript">
if (navigator.cookieEnabled == 0) {
        alert("Este sitio necesita tener habilitadas cookies");
</script>
1