Jquery加载模式,如果一个小时过去了


jquery load modal if one hour passed

$(document).ready(function() { 
    $('#bb').modal();
});

我正在加载一个bootstrap模态加载。但我不想在每个负载上显示模态。它应该像"显示如果60分钟后通过上次加载"。

我无法记录ip地址,因为所有用户都在使用相同的ip地址。

我可以这样做只有jquery(它可以像"显示如果时间是前5分钟的小时")?

如果没有,我还有什么其他选择?

您可以设置一个有效期为60分钟的cookie,并检查该cookie是否仍然存在。如果不是,则重新显示您的模态。

这里有一个很好的jQuery Cookie插件。

如果你没有将cookie的过期日期设置为60分钟,或者如果根本不可能,你可以将cookie创建的时间存储在cookie中,并检查该时间是否与当前时间>= 60分钟。如果是,则显示模式并刷新cookie时间。

这应该是你想要的,但是你可能想要考虑异步重新加载你的内容,而不是总是驱动document.ready()

<!DOCTYPE html>
<html>
<head>
<script>
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
  {
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^'s+|'s+$/g,"");
  if (x==c_name)
    {
    return unescape(y);
    }
  }
}
function setCookie(c_name,value,exminutes)
{
var exdate=new Date();
exdate.setMinutes(exdate.getMinutes() + exminutes);
var c_value=escape(value) + ((exminutes==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function checkCookie()
{
var lastload=getCookie("lastload");
if (lastload!=null && lastload!="")
  {
    // no need to do anything
  }
else 
  {
    // show / load modal
  }
  setCookie("lastload",1,60);
}
</script>
</head>
<body onload="checkCookie()">
</body>
</html>

javascript中有一个Date()对象。检查代码中的时间。如果是一小时的前5分钟显示模式。否则不显示模态

var date = new Date();
if(date.getMinutes()<=5)
{
   // display
}
else{
    // Dont display
}