[英]How can I make a pop up stop appearing after a user clicks the link?
当用户点击弹出通知时我使用JavaScript设置cookie,但在完全关闭浏览器后,cookie过期并在导航到页面时再次显示通知。
我希望用户可以选择基本上说“不再显示” 。
1)有没有更好的方法来保存数据到数据库?
2)我可以设置cookie,以便在窗口关闭时它不会过期吗?
以下是设置cookie的代码。 如果cookie未设置为“visited”,则调用另一个函数showLightBox()
。
$j(document).ready(function() {
$j(function() {
checkCookie();
});
function checkCookie() {
var hasVisit = getCookie("hasVisited");
if(hasVisit != "visited") {
showLightBox();
}
}
function getCookie(c_name) {
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
c_start = c_value.indexOf(c_name + "=");
if (c_start == -1)
c_value = null;
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
c_end = c_value.length;
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
function setCookie(cookieName, value) {
document.cookie = cookieName + "=" + value;
}
您可以像这样设置cookie过期的日期。
document.cookie="username=suman; expires=Thu, 18 Dec 2020 11:00:00 GMT";
现在这个cookie将在2020年12月18日被删除。默认情况下,当您的浏览器关闭时,cookie将被删除。
更新: -在您的情况下,cookie将设置它将过期的日期。
function setCookie(cookieName,value){
document.cookie = cookieName+"="+value+"; expires=Thu, 18 Dec 2020 11:00:00 GMT";
}
您可以在日期字段中输入您想要的任何日期。
您可能没有为cookie设置过期,因此它默认为在浏览器关闭时到期的会话cookie。
如果您已经在使用jQuery,我建议使用精彩的jQuery Cookie插件 ,这使得设置和检索cookie成为一块蛋糕。 有关详细信息,请参阅自述文件/文档,只需编写几行代码而不是50行代码。
为什么不在html5中使用localStorage来实现这一点,因为它是持久的,就像用户第一次点击链接时设置标志
localStorage.setItem('clicked', "yes");
然后再次检查是否设置了此值,
if(localStorage.getItem('clicked')!=null){
//clicked
}
else
{
//not clicked
}
如果设置了此值,则显示“不要再显示”,否则不要......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.