jquery - 如何每24小时调用一次jquery函数?

标签 jquery cookies

我正在努力在我的网站上设置一个横幅,以告知访问者有关 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/

相关文章:

javascript - fetch() 无法设置从服务器接收到的 cookie?

ruby - Sinatra - response.set_cookie 不起作用

javascript - 如何专注于javascript对话框 'OK'按钮

javascript - 无法获取 AJAX 发送的 php POST

javascript - Phantomjs 和 HTML 5 触发点击事件并提交表单失败

c# - asp.net mvc3 302 在 $.get 调用上发现错误

php - 为 www. 取消设置早于特定日期的 Cookie。和非 www 域

javascript - AnulgarJS - 服务中的对象参数未更改

angular - 使用 angular 设置 Cookie 参数 'HttpOnly' 的任何想法

jquery - 通过 JQuery .val() 将多个数据字段从 <select multiple> 传递到 Django formfield