如何只允许在第一次使用jQuery时出现弹出消息

时间:2019-05-31 21:07:52

标签: javascript jquery cookies browser-cache cache-control

我正在努力为用户首次访问我们的网站添加GDPR样式/ Cookie通知,但直到他们清除缓存后再进行访问。我设置了一个通知以在窗口打开时显示,并有一个关闭按钮以将其关闭。

我尝试使用localStorage和sessionStorage jQuery,类似于用来帮助其他用户的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();
        });
    });

我希望用户首次访问我们的网站时(或因为我们添加了此功能),将会出现弹出窗口;一旦他们从弹出窗口或浏览器中退出,直到清除其缓存后,通知才会再次出现。

2 个答案:

答案 0 :(得分:0)

您不确定我认为自己缺少的那部分。

您的一般代码流: 1)检查cookie /本地存储 2)有条件地渲染弹出窗口 3)如果用户同意,则设置cookie /本地存储

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

好像您知道如何显示/淡入它。

答案 1 :(得分:0)

您正在阅读“状态”,但设置为“元素”。这两个名字应该是相同的。