【问题标题】:Set cookie in a funtion, then check on page reload and do something在函数中设置 cookie,然后检查页面重新加载并执行某些操作
【发布时间】:2015-07-29 21:30:28
【问题描述】:

我想在函数结束时为 cookie 设置一个值,并在页面重新加载时检查该代码是否存在。比如:

function onObjectDrag() {
// save code
$.cookie("saved", 1);
location.reload();
}

然后,当页面刷新时,检查该 cookie 是否存在,如果存在,则执行一些操作然后删除该 cookie。如果没有,请不要做任何事情。

【问题讨论】:

  • 您正在保存 cookie。现在在 document.ready 事件中,只需读取 cookie 值并“做某事”并删除它。

标签: jquery cookies reload


【解决方案1】:

不要在没有任何条件或将 cookie 设置为零之后调用onObjectDrag(),否则将导致递归。

function onObjectDrag() {
    setCookie('saved', 1, 100);
    location.reload();
}

$( document ).ready(function() {
    var x = getCookie('saved');
    if (x == 1) {
        //do something
        setCookie('saved', 0, 100);
    }
});

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 "";
}

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

【讨论】:

  • 谢谢@hoschnok。完美运行。
【解决方案2】:

只需在同一页面中嵌入另一个 http 请求,避免重新加载之类的事情......

重新加载可能会让您对书签页面、搜索引擎上的索引页面、直接链接到重新加载页面的人等感到头疼。

如果对您有帮助,请查看Admins having to reload page to see admin features (question about cookie location)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-13
    • 2011-11-13
    • 1970-01-01
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 2011-09-26
    相关资源
    最近更新 更多