我有一个带有cookie的弹出窗口,该cookie在一天(24小时)到期,我希望这个cookie每天午夜到期(所以弹出窗口显示你每天第一次进入网络) 。我不是程序员,所以,请问有人可以告诉我在代码中需要更改的内容吗?我已经阅读了一些问题的解决方案,但我不知道如何实现它。
//CONTROLLING EVENTS IN jQuery
$(document).ready(function(){
if ($.cookie("anewsletter") != 1) {
//centering with css
centerPopup();
//load popup
loadPopup();
}
//CLOSING POPUP
//Click the x event!
$("#popupContactClose").click(function(){
disablePopup();
$.cookie("anewsletter", "1", { expires: 1 });
});
//Click the bacground!
$("#backgroundPopup").click(function(){
disablePopup();
$.cookie("anewsletter", "1", { expires: 1 });
});
//Press Escape event!
$(document).keypress(function(e){
if(e.keyCode==27 && popupStatus==1){
disablePopup();
$.cookie("anewsletter", "1", { expires: 1 });
}
});
});
非常感谢!
答案 0 :(得分:7)
$.cookie
可以将日期设为expires
值,因此您可以使用以下
var midnight = new Date();
midnight.setHours(23,59,59,0);
$.cookie('anewsletter', '1', { expires: midnight });
答案 1 :(得分:0)
好的 - 这将在访问者第一次到来时创建一个cookie - 该cookie将在23:59:59(midnite之前的第二个)到期,所以如果他们从午夜或之后访问,那么它将重做cookie。您可以在if visited == 0部分(它设置cookie)中添加条件代码 - 只有在cookie不存在(或已过期)时才会运行。
var visited = 0;
function cookieTest() {
if (visited == 0) {
var exdate=new Date();
exdate.setHours(23);
exdate.setMinutes(59);
exdate.setSeconds(59);
document.cookie='visited=1; expires='+exdate+'; path=/';
}
else {
alert("you've been here before!");
}
}
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) visited = ( c.substring(nameEQ.length,c.length));
}
return null;
}
readCookie('visited');
cookieTest();