【发布时间】:2018-05-10 18:06:38
【问题描述】:
var timeoutHandle;
function countdown(minutes,stat) {
var seconds = 60;
var mins = minutes;
if(getCookie("minutes")&&getCookie("seconds")&&stat)
{
var seconds = getCookie("seconds");
var mins = getCookie("minutes");
}
function tick() {
var counter = document.getElementById("demo");
setCookie("minutes",mins,1);
setCookie("seconds",seconds,1);
var current_minutes = mins-1
seconds--;
counter.innerHTML =
current_minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
//save the time in cookie
if(current_minutes.toString()== 30)
{
$("#myModal").modal();
}
if( seconds > 0 ) {
timeoutHandle=setTimeout(tick, 1000);
} else {
if(mins > 1){
/* countdown(mins-1); never reach “00″ issue solved:
Contributed by Victor Streithorst */
setTimeout(function () { countdown(parseInt(mins)-1,false); }, 1000);
}
}
}
tick();
}
function setCookie(cname,cvalue,exdays) {
if(exdays > 0)
{
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname+"="+cvalue+"; "+expires;
}else{
var expires="expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;";
document.cookie = cname+"="+cvalue+"; "+expires;
}
}
function getCookie(cname) {
var name = cname + "=";
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);
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
countdown(60,true);
$("li a").click(function(){
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
$.cookie("minutes", null, { path: '/' });
$.cookie("seconds", null, { path: '/' });
});
我在上面的代码中有两个变量。当我尝试注销时,之前在 cookie 中设置的两个变量都不会重置。请让我知道我在这里做错了什么。提前致谢。
【问题讨论】:
-
这不是 cookie 的确切用途 - 在对网络资源的多次访问之间保存吗?为什么你期望他们会被重置?你有没有在任何地方重置它们?
-
是的,我在注销时在我的应用程序中添加了此代码 $("li a").click(function(){ var cookies = document.cookie.split(";"); for (var i = 0; i
-
我在该代码中看不到“注销”的概念。
标签: javascript jquery cookies setcookie