$(document).ready(function() {
$('#bb').modal();
});
我正在加载一个引导模式。但我不想在每次负载时都显示模态。它应该像“显示上一次加载后是否经过 60 分钟”。
我无法记录 IP 地址,因为所有用户都使用相同的 IP 地址。
我可以只用 jquery 来做到这一点(它可以像“显示时间是否是一小时的前 5 分钟”)?
如果不是,我的其他选择是什么?
$(document).ready(function() {
$('#bb').modal();
});
我正在加载一个引导模式。但我不想在每次负载时都显示模态。它应该像“显示上一次加载后是否经过 60 分钟”。
我无法记录 IP 地址,因为所有用户都使用相同的 IP 地址。
我可以只用 jquery 来做到这一点(它可以像“显示时间是否是一小时的前 5 分钟”)?
如果不是,我的其他选择是什么?
您可以设置一个有效期为 60 分钟的 cookie,并检查该 cookie 是否仍然存在。如果不是,则再次显示您的模态。
这里有一个不错的 jQuery Cookie 插件。
如果您没有将 cookie 的到期日期设置为 60 分钟,或者根本不可能,您可以将 cookie 的创建时间存储在 cookie 中,并检查该时间是否与当前时间相差 >= 60 分钟时间。如果是这样,您将显示模式并刷新 cookie 时间。
您在 javascript 中有一个 Date() 对象。检查代码中的时间。如果它的前 5 分钟显示模式。否则不显示模态。
var date = new Date();
if(date.getMinutes()<=5)
{
// display
}
else{
// Dont display
}
这应该可以满足您的需求,但是您可能需要考虑异步重新加载内容,而不是始终关闭 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>