jQuery Cookie故障

时间:2017-02-11 12:29:55

标签: javascript jquery css cookies

我有一个'接受Cookies'使用以下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;
}

2 个答案:

答案 0 :(得分:1)

解决!

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

找到这个有用的帖子:One Cookie - Multiple Pages

答案 1 :(得分:1)

我也没看到你的cookie什么时候到期。在下一个会话中,用户将再次看到此消息。你可以使用这样的东西

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