【问题标题】:jQuery Cookie glitchjQuery Cookie 故障
【发布时间】:2017-02-11 20:44:40
【问题描述】:

我的网页底部有一个“接受 Cookie”栏,使用以下 HTML:

<div class="cookies-banner-bloc">
            <div class="cookies-banner-container">
                <p>We use cookies on this website.</p>
                <a class="cookies-close-button no-border">Close this Message</a>
            </div>
        </div>

当用户单击“关闭”时,我使用以下 jQuery 使用 cookie 来存储,但是,cookie 似乎只存储在一个页面上,而不是整个站点。我的header.php 脚本中确实有它,所以它应该会影响我的所有模板。

为什么这只适用于一页?

Javascript:

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

        jQuery(document).ready(function($){

            if(getCookie("userclosedalert")=="true"){
                  $(".cookies-banner-bloc").addClass('hide');
                  removeClass = false;
            } else {
                  $(".cookies-banner-bloc").addClass('show');
                  removeClass = false;
            }
            $(".cookies-close-button").click(function () {
               document.cookie = "userclosedalert=true";

            });

        });

        </script>

CSS:

.cookies-banner-bloc {
    width: 100%;
    position: fixed;
    bottom: 0;
    background-color: black;
    padding: 25px 0;
    opacity: 1;
    display:none;
}

.cookies-banner-bloc.show {
    display:block;
}

.cookies-banner-bloc.show.hide,.hide {
    display:none;
}

【问题讨论】:

    标签: javascript jquery css cookies


    【解决方案1】:

    已解决!

    document.cookie = "userclosedalert=true;path=/";

    发现这个有用的帖子:One Cookie - Multiple Pages

    【讨论】:

      【解决方案2】:

      我也看不到您的 cookie 何时过期。在下一次会话中,用户将再次看到此消息。你可以使用这样的东西

      var x = 12 * 20; //or whatever offset
      var CurrentDate = new Date();
      CurrentDate.setMonth(CurrentDate.getMonth() + x);
      document.cookie = "userclosedalert=true; expires=" + CurrentDate + ";path=/";
      

      【讨论】:

        猜你喜欢
        • 2012-07-07
        • 1970-01-01
        • 1970-01-01
        • 2020-10-03
        • 2011-08-29
        • 2012-01-29
        • 2012-01-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多