如何只允许在首次访问 jQuery 时出现弹出消息

How to only allow a popup message to occur on first visit with jQuery

我正在努力为用户首次访问我们的网站时添加 GDPR 样式/Cookie 通知,但在他们清除缓存之前不会再次访问。我设置了一个通知以在 window 打开时显示,并设置了一个关闭按钮来关闭它。

我已经尝试使用 localStorage 和 sessionStorage jquery,类似于用于帮助其他用户的方法,包括先隐藏弹出窗口然后检查 localStorage 以查看它是否存在:

 $(document).ready(function() {
        $('#toast').hide();
        var element= localStorage.getItem('status');
        if (element == null || element == '') {
            localStorage.setItem('element', 1);
            $('#toast').show();
        }});

但是 1) 我不想复制意大利面,因为 2) 它不起作用。

html 弹出窗口:

<div id="toast" class="toast-close fixed-bottom" style="background-color: #DB7232; color: white; opacity: .7; margin: 0 0 2rem 2rem; padding: 1rem; width: 18rem;">
     <small>By continuing to browse this site, you're accepting the use of cookies.</small>
     <small><button type="button" data-dismiss="toast" class="close" aria-label="Close">&times</button></small>
</div>

jquery 在此处关闭弹出窗口:

    $(document).on('click', '.toast-close', function() {
        $(this).fadeOut(function(){
           $(this).remove();
        });
    });

我预计当用户第一次访问我们的网站时(或自从我们添加此功能后)会出现弹出窗口;一旦他们退出弹出窗口或浏览器,通知将不会再次出现,直到他们的缓存被清除。

你认为你遗漏的部分我不确定。

您的一般代码流程: 1) 检查 cookie/localstorage 2)有条件地渲染弹出窗口 3) 如果用户同意

,则设置cookie/localstorage

我看到您在 cookie 逻辑之前有一个 .hide()。我会将 html 片段保存在其他地方(显示:none?),除非您特别需要它。

看来你知道如何 display/fade 如果你需要它。

您正在阅读 'status',但正在阅读 'element'。这两个名字应该是一样的。