我正在努力在我的网站上设置一个横幅,以告知访问者有关 cookie 的信息。我想使用 jquery 应用此横幅,当人们单击“确定”时,它应该消失。这部分我可以做,但我希望他们在 24 小时后再次访问该网站时它会重新出现。我想我可以用 cookie 来做到这一点,但我不太确定如何去做。谁能指出我正确的方向?
最佳答案
JQuery 没有内置的 cookie 处理程序,但在常规 js 中它确实没有那么难。正如@Tim 提到的,这是糟糕的用户体验设计,你不应该用这样的弹出窗口来惹恼人们。一次就够了。但我理解为什么您可能想确保它不会每次都弹出。如果您愿意,您可以将日期设置为非常遥远的 future 日期,以帮助防止它再次出现,直到用户清除那里的 cookie。
像这样设置cookie
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
然后像这样检索它。
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 checkCookie()
{
var username=getCookie("username");
if (username!=null && username!="")
{
alert("Welcome again " + username);
}
else
{
username=prompt("Please enter your name:","");
if (username!=null && username!="")
{
setCookie("username",username,365);
}
}
*直接取自此处 http://www.w3schools.com/js/js_cookies.asp * }
关于jquery - 如何每24小时调用一次jquery函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18620346/