日期:2014-05-16  浏览次数:20374 次

JS换皮肤及cookie读写
要做皮肤切换,就涉及到js存取cookie的问题
function GetCookieVal(offset)
//获得Cookie解码后的值
{
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}

function SetCookie(name, value)
//设定Cookie值
{
	var expdate = new Date();
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
	document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
	+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
	+((secure == true) ? "; secure" : "");
}


function DelCookie(name)
	//删除Cookie
	{
	var exp = new Date();
	exp.setTime (exp.getTime() - 1);
	var cval = GetCookie (name);
	document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}


function GetCookie(name)
//获得Cookie的原始值
{
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	while (i < clen)
	{
	var j = i + alen;
	if (document.cookie.substring(i, j) == arg)
	return GetCookieVal (j);
	i = document.cookie.indexOf(" ", i) + 1;
	if (i == 0) break;
	}
	return null;
}



自己写了个简陋的换肤功能,以后需要完善这个
$(function(){
//换皮
	 var skinPath = skinPath||"themes/blue/skins/";
	 var defcss = defcss||"themes/blue/skins/red/red.css";
	 var css1 = skinPath+GetCookie("style");
	 if(GetCookie("style")!=null){
		  jQuery('#skin').attr('href',css1);
	  }else{
		  jQuery('#skin').attr('href',defcss);
	  }
//换红
	 jQuery('#red').click(function(){
		var css = skinPath+"red/red.css";
		jQuery('#skin').attr('href',css);
		SetCookie("style","red/red.css");
	 });
//换蓝
	 jQuery('#blue').click(function(){
		var css = skinPath+"blue/blue.css";
		jQuery('#skin').attr('href',css);
		SetCookie("style","blue/blue.css");
	 });
})

页头:
<link id='skin'  rel="stylesheet" type="text/css" />