我使用JQuery作为布局开关工作正常,但是当用户刷新页面时,如果你知道我的意思,没有任何布局选项被“保存”。有没有办法记住即使用户刷新/更改页面也选择了哪个开关选项?
例如,如果后区域bg为黑色且文本为白色,则开关将反转这些颜色,并且除非用户切换回来,否则将保持不变。
我以前用php做过这个,但我想在没有php的情况下这样做,只要jq,如果可能的话。
答案 0 :(得分:1)
如果您想使用jQuery(或使用HTML5存储本地数据但不是普遍使用或浏览器接受,也不需要),您肯定需要为此设置cookie。
这是一个非常基本的功能,可以从here:
设置Cookiefunction set_cookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
这是一个非常基本的获取Cookie,也来自here:
function get_cookie(c_name){
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
所以这样的事情应该有效:
var bg_color = get_cookie('bg_color');
if (bg_color != null) { // may want to do more verification here, as well
$('body').css('backgroundColor', '#' + bg_color);
}
else {
$('body').css('backgroundColor', '#FFF');
}
然后每当您想要保存颜色时,只需将其设置为:
set_cookie('bg_color', color, 10); // will save `color` in the cookie for 10 days
编辑发布之后,我发现可能有一个内置函数与jQuery设置/获取cookie或至少是一个非常好的插件。 This页面有一些很好的参考。
答案 1 :(得分:0)
您可以使用用户的主题偏好设置Cookie,并在加载时检查该Cookie是否存在。