javascript - 即使 cookie 政策仍然有效,Div 也会出现

标签 javascript jquery

下面的代码应该在单击按钮时设置一个具有 60 天到期日期的 cookie,这工作正常,但是当我在另一个窗口中打开该网站或刷新页面时,div 仍然出现,我无法找出原因。

谁能阻止我写错的东西

(function () {
    "use strict";

    var cookieAlert = document.querySelector(".cookiealert");
    var acceptCookies = document.querySelector(".acceptcookies");

    cookieAlert.offsetHeight; // Force browser to trigger reflow (https://stackoverflow.com/a/39451131)

    if (!getCookie("acceptCookies")) {
       cookieAlert.classList.add("show");
    }

    acceptCookies.addEventListener("click", function () {
        setCookie("acceptCookies", true, 60);
        cookieAlert.classList.remove("show");
    });
})();

// Cookie functions stolen from w3schools
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 + ";path=/";
}

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

这是我正在使用的 HTML

<div class="alert alert-dismissible text-center cookiealert show" role="alert">
    <div class="cookiealert-container">
        @privacyText <a href="@privacyLink">Learn more</a>

        <button id="btnCookiePolicy" type="button" class="btn btn-primary btn-sm acceptcookies" aria-label="Close">
            I agree
        </button>
    </div>
</div>

最佳答案

这是错误的...

<div class="alert alert-dismissible text-center cookiealert show" role="alert">

您需要从类列表中删除 show 类,因为您希望默认情况下隐藏对话框,然后添加 show 类(如果有)没有cookie。

只需将该行更改为...

<div class="alert alert-dismissible text-center cookiealert" role="alert">

这应该可以解决你的问题。

关于javascript - 即使 cookie 政策仍然有效,Div 也会出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689828/

相关文章:

javascript - 使用 js 编辑类样式属性时出现问题 - 问题出在 IE 上

javascript - 如何在 javascript 中使用 RoutePrefix 获取 Web API 方法的有效 url

javascript - 我想使用react-native-image-picker捕获多个图像

javascript - 如何使用 map 作为背景?

javascript - HTML5 Required 字段错误信息问题

javascript - 动态一一添加optgroup和options

javascript - 有没有办法删除 setRequestHeader() 设置的 Ajax header ?

javascript - 更改位置后如何将div重置为居中

javascript - 如何实现jquery live()而不是each()

javascript - 如何使用JS每3秒上传一张图片?