首页 文章

如何设置cookie以隐藏第二页加载时的通知栏?

提问于
浏览
0

这就是我要的:

  • 新用户访问我的网站 . 可以看到固定在视口底部的通知栏 .

  • 然后,用户单击菜单项,转到另一页 . 在第二页加载时设置一个cookie,它会将通知栏隐藏60天(必须100%隐藏,而不是在页面加载时闪存到异步加载的javascript) .

  • 用户还可以单击"Ok"按钮关闭通知栏并设置相同的cookie .

这是我的HTML:

<div id="cookie-message">
    <span>Cookie notice here <a href="#">Read more</a> <a href="#" id="cookie-message-close">Ok</a></span>
</div>

我怎么能用jQuery做到这一点?

谢谢!

2 回答

  • 0

    您可以使用API来处理cookie,使事情变得更加容易 .

    首先,你将 display: none; 放在div cookie-message中 .

    关于隐藏或不通知的逻辑,您可以在窗口的第一个加载中放置一个监听器:

    window.addEventListener('load', function(){...});
    

    通过这种方式,您可以获得加载窗口的时刻 . 如果此刻没有通知读取的cookie,则显示div( $('#cookie-message').show() ,然后设置cookie . 如果已经设置了cookie,则不执行任何操作 .

    关于OK单击,在链接中设置单击侦听器以隐藏通知div( $('#cookie-message').show() ) .

    为了帮助你,我做了一个simple example我所说的例子 .

  • 3

    非常感谢你的回应,Henrique . 但是我无法让它工作到“jQuery $ .cookie不是函数”错误 .

    我发现"jQuery Cookie"已被弃用,js-cookie是新版本 . 通过包含它并将旧的cookie功能更改为新的功能,它现在可以完美运行!

    这是我最后的jQuery代码,使用“js-cookie”:

    window.addEventListener('load', function(){
        jQuery('#cookie-message-close').click(function(){
            jQuery('#cookie-message').hide();
        });
    
        if (!Cookies.get("cookie-message-bar"))
        {
            jQuery('#cookie-message').show();
            Cookies.set('cookie-message-bar', true, { expires: 60 });
        }
    });
    

    请注意,由于Wordpress的'noConflict()模式,我已将$更改为jQuery,因为我正在使用Wordpress进行开发 .

相关问题