【问题标题】:Javascript cookie not going reset when I am trying rest当我尝试休息时,Javascript cookie 不会重置
【发布时间】: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


【解决方案1】:

您可能希望在注销功能中删除这些变量正在读取的 cookie:

试试看这个:How to delete a cookie?

特别是:

function removeItem(sKey, sPath, sDomain) {
document.cookie = encodeURIComponent(sKey) + 
              "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + 
              (sDomain ? "; domain=" + sDomain : "") + 
              (sPath ? "; path=" + sPath : "");
}

removeItem("cookieName");

【讨论】:

  • 之后可能考虑重新加载页面
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 2013-02-07
  • 2021-03-26
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多