$(document).ready(function() {
$('#bb').modal();
});
我正在加载一个bootstrap模式。但我不想在每次加载时显示模态。它应该像“显示如果在上一次加载后60分钟过去了”。
我无法记录IP地址,因为所有用户都使用相同的IP地址。
我是否可以仅使用jquery执行此操作(它可以像“显示时间是前5分钟的时间”)?
如果不是我的其他选择?
答案 0 :(得分:4)
您可以设置一个60分钟到期的cookie,并检查cookie是否仍然存在。如果不是,则再次显示您的模态。
有一个很好的jQuery Cookie插件here。
如果您没有将cookie的截止日期设置为60分钟或者根本不可能,那么您可以存储cookie在cookie中创建的时间并检查此时间是否> = 60距离您当前的时间。如果是,则显示模态并刷新cookie时间。
答案 1 :(得分:1)
你在javascript中有一个Date()对象。检查代码中的时间。如果它的前5分钟显示模态。否则不显示模态。
var date = new Date();
if(date.getMinutes()<=5)
{
// display
}
else{
// Dont display
}
答案 2 :(得分: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>