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

我正在加载一个引导模式。但我不想在每次负载时都显示模态。它应该像“显示上一次加载后是否经过 60 分钟”。

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

我可以只用 jquery 来做到这一点(它可以像“显示时间是否是一小时的前 5 分钟”)?

如果不是,我的其他选择是什么?

4

3 回答 3

4

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

这里有一个不错的 jQuery Cookie 插件。

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

于 2013-04-02T10:15:17.200 回答
1

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

var date = new Date();
if(date.getMinutes()<=5)
{
   // display
}
else{
    // Dont display
}
于 2013-04-02T10:14:49.910 回答
1

这应该可以满足您的需求,但是您可能需要考虑异步重新加载内容,而不是始终关闭 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>
于 2013-04-02T10:26:02.277 回答