Javascript 如何设置cookie以在第二次页面加载时隐藏通知栏?

Javascript 如何设置cookie以在第二次页面加载时隐藏通知栏?,javascript,jquery,html,css,cookies,Javascript,Jquery,Html,Css,Cookies,这是我不想看到的: 新用户访问我的网站。固定在视口底部的通知栏可见 然后,用户单击一个菜单项,转到另一个页面。在第二次页面加载时设置cookie,该cookie会将通知栏隐藏60天(由于javascript是异步加载的,所以在页面加载时必须100%隐藏并且不闪烁) 用户还可以单击“确定”按钮关闭通知栏并设置相同的cookie 这是我的HTML: <div id="cookie-message"> <span>Cookie notice here <a h

这是我不想看到的:

  • 新用户访问我的网站。固定在视口底部的通知栏可见
  • 然后,用户单击一个菜单项,转到另一个页面。在第二次页面加载时设置cookie,该cookie会将通知栏隐藏60天(由于javascript是异步加载的,所以在页面加载时必须100%隐藏并且不闪烁)
  • 用户还可以单击“确定”按钮关闭通知栏并设置相同的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实现这一点


谢谢

您可以使用API来处理cookies,使事情变得更加简单

首先你把
显示:无

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

window.addEventListener('load', function(){...});
这样您就可以获得加载窗口的时刻。如果此时没有用于通知读取的cookie,则显示div(
$(“#cookie message”).show()
,然后设置cookie。如果已经设置了该cookie的cookie,则不执行任何操作

关于OK click,在链接中设置click侦听器以隐藏通知div(
$(“#cookie message”).show()


为了帮助您,我举了一个我所说的例子。

您可以使用API来处理cookies,使事情变得更加简单

首先,在div cookie消息中放入
display:none;

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

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

关于OK click,在链接中设置click侦听器以隐藏通知div(
$(“#cookie message”).show()


为了帮助您,我举了一个我所说的例子。

非常感谢您的回复,Henrique。但是,由于出现“jQuery$。cookie不是函数”错误,我无法使其正常工作

我发现“jQueryCookie”已经被弃用了,而且是新版本。通过包含它并将旧的Cookie函数更改为新的函数,它现在可以完美地工作了

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


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

非常感谢您的回复,Henrique。但是,由于出现“jQuery$。cookie不是函数”错误,我无法使其正常工作

我发现“jQueryCookie”已经被弃用了,而且是新版本。通过包含它并将旧的Cookie函数更改为新的函数,它现在可以完美地工作了

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


注意,由于Wordpress'noConflict(),我将$改为jQuery模式,因为我是在Wordpress中开发的。

cookie是否必须设置为第二页加载?您可以在第一页加载时删除cookie,但由于cookie最初不存在,所以该条仍会显示。您只需确保该条在第一页始终隐藏,并且仅在没有cookie的情况下显示。这将显示on第一次页面加载,而不是后续页面加载。您删除的cookie应该有60天的过期时间。这也会起作用。我只是不知道如何对其进行编码,也找不到类似的解决方案。cookie是否必须设置为第二次页面加载?您可以在第一次页面加载时删除cookie,但由于cookie最初不存在,因此该条将被禁用我会显示的。你只需要确保工具栏在开始时总是隐藏的,并且只在没有cookie的情况下显示。这将在第一次页面加载时显示,而不是在后续页面加载时显示。你删除的cookie应该有60天的过期期。这也会起作用。我只是不知道如何编码,我也找不到类似的解决方案。谢谢你的帮助帮助!通过以下回复中提到的一些调整,我成功地修复了它。:)请记住,如果设置了cookie,您也可以在PHP中检查cookie,并且完全忽略呈现cookie通知,在数组中使用类似
($cookie)的复选框(“您的cookie名称”,数组键($cookie))
。感谢您的帮助!通过以下回复中提到的一些调整,我成功地修复了它。:)请记住,如果设置了cookie,您还可以在PHP中检查cookie,并完全忽略呈现cookie通知,例如在数组(“您的cookie名称”,数组键($\cookie))
。这不是真的。expires值应为整数,以天为单位计数。请原谅。意识到您正在使用Cookies对象和内置库太晚了。这不是真的。expires值应为整数,以天为单位计数。请原谅。意识到您正在使用Cookies对象和内置库太晚了。