【问题标题】:Set a cookie on first time page load在第一次页面加载时设置 cookie
【发布时间】:2016-02-03 17:17:40
【问题描述】:

如何通过 jQuery cookie ($.cookie()) 库设置 cookie,仅在第一次加载页面时?我目前有一个切换功能,可以在 click 事件时更改相关 cookie 的值

$('.family-filter').click(function() {
    if ($.cookie('ff') == null) {
        $.cookie('ff', 'on', {
            expires: 1,
            path: '/'
        });
    } else {
        $.cookie('ff', null, {
            path: '/'
        });
    }
});

但我需要一个默认值,如果没有设置的话。

也很乐意通过 PHP 进行设置,但我更喜欢通过 Javascript 进行设置

【问题讨论】:

  • 您想在 CLICK 或 LOAD 上设置 cookie?您显然在点击时设置了 cookie。 $.ready 页面加载。
  • 我认为您不需要else if。检查它是否为空然后创建它应该足够了
  • 是的,else if 不需要......我忘了把它拿出来。 else 如果打开,则需要通过链接将其关闭,反之亦然。 @MatBee,我尝试将其设置为 $.ready,但我最终覆盖了上面的代码

标签: javascript jquery cookies jquery-cookie


【解决方案1】:

我正在像这样添加一个 cokkie:

if (document.cookie.indexOf('visited=true') == -1) {
    var thirtydays = 1000*60*60*24*30;
    var expires = new Date((new Date()).valueOf() +  thirtydays);
    document.cookie = "visited=true;expires=" +  expires.toUTCString();
}

它对我来说很好用,如果您需要在用户第一次访问网站时运行某些东西,您可以在 if 子句中添加更多代码。

【讨论】:

【解决方案2】:

在页面加载中,您可以设置此代码来检查和设置 cookie

<?php

if (!isset($_COOKIE["ff"])) {
    // Expire Time is 30 Days
    $expire = time() + 60 * 60 * 24 * 30;
    setcookie('ff', 'on', $expire);
}

【讨论】:

  • 是的,我可以在 codeginiter 的家庭控制器中这样做......我会尝试
【解决方案3】:

好吧,我决定这样实现:

if ($.cookie('ff') == null) {
    $.cookie('ff', 'on', {
        expires: 30,
        path: '/'
    });
}

$('.family-filter').click(function() {
    if ($.cookie('ff') == 'off') {
        $.cookie('ff', 'on', {
            expires: 30,
            path: '/'
        });
    } else {
        $.cookie('ff', 'off', {
            path: '/'
        });
    }
});

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多