我找到了一个我正在审核的cookie脚本,它可以创建cookie,但不会杀死cookie。
代码:
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
}
function KillCookie(cookieName) {
SetCookie(cookieName,"",-3);
}
function ReadCookie(cookieName) {
var theCookie=""+document.cookie;
var ind=theCookie.indexOf(cookieName+"=");
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(";",ind);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}
如您所见,我创建了功能KillCookie,它应该将过期日期设置为三天,并让浏览器自动删除。问题是它没有删除它。
我在代码中编写了这些函数,如此
$(function() {
$('#left').before('<div id="left_widg"><button></button></span>');
$('#right').before('<div id="right_widg"><button></button></span>');
$('#left_widg button').on('click',function() {
var _checkme = $('#left').css('display');
var oriWidth = 180;
if(_checkme === "block") {
SetCookie('closeWidgetsLeft', 'true', 100);
$('#left').animate({width:'-='+ oriWidth +'px'},500,function() {
$(this).hide();
$('#left_widg button').html('Open');
});
} else {
KillCookie('closeWidgetsRight');
$('#left').show();
$('#left').animate({width:'+='+ oriWidth +'px'},500,function() {
$('#left_widg button').html('Close');
});
}
});
if (ReadCookie('closeWidgetsLeft') == 'true') {
$('#left').css('display','none');
} else if (ReadCookie('closeWidgetsRight') == 'true') {
$('#right').css('display','none');
}
});
答案 0 :(得分:0)
function KillCookie(key) {
var t = new Date();
t.setDate(t.getDate() - 1);
document.cookie = [
encodeURIComponent(key),
'=',
encodeURIComponent(String(null)),
'; expires=' + t.toUTCString(),
'; path=/'
].join('');
};
请注意为根(整个网站)设置cookie的path参数。你也应该把它包含在SetCookie函数中......
function SetCookie(key,value,expires) {
var t = new Date();
t.setDate(t.getDate() + expires);
document.cookie = [
encodeURIComponent(key),
'=',
encodeURIComponent(String(value)),
'; expires=' + t.toUTCString(),
'; path=/'
].join('');
}
KillCookie成为:
function KillCookie(key) {
SetCookie(key, null, -1);
};
有时处理cookie很棘手,很多事情都会导致它无法正常工作,所以我建议你使用类似this JQuery plugin之类的东西来启动这段代码。