<div class="ads">Some text</div>
想要:
我该怎么做?
具有此功能的网站示例:
答案 0 :(得分:8)
我创建了使用cookie实现需求的示例代码:
取决于jQuery和Cookie plugin。
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script type="text/javascript" src="https://github.com/carhartl/jquery-cookie/raw/master/jquery.cookie.js"></script>
<script type="text/javascript">
$(document).ready(function() {
if( $.cookie('showOnlyOne') ){
//it is still within the day
//hide the div
$('#shownOnlyOnceADay').hide();
} else {
//either cookie already expired, or user never visit the site
//create the cookie
$.cookie('showOnlyOne', 'showOnlyOne', { expires: 1 });
//and display the div
$('#shownOnlyOnceADay').show();
}
});
</script>
</head>
<body>
<div id="shownOnlyOnceADay">
This text should only be shown once a day!
</div>
</body>
</html>
通过更改系统日期对其进行测试。
答案 1 :(得分:2)
您可以使用这样的代码,假设您总是从div
开始将其样式display
属性设置为none
:
if(localStorage.last){
if( (localStorage.last - Date.now() ) / (1000*60*60*24) >= 1){ //Date.now() is in milliseconds, so convert it all to days, and if it's more than 1 day, show the div
document.getElementById('div').style.display = 'block'; //Show the div
localStorage.last = Date.now(); //Reset your timer
}
}
else {
localStorage.last = Date.now();
document.getElementById('div').style.display = 'block'; //Show the div because you haven't ever shown it before.
}
答案 2 :(得分:1)
这取决于您希望此规则的严格程度。 为了完全准确,您将必须使用数据库来维护向用户显示的用户ID和块时间。 但是,如果它不是一个非常严格的规则,您可以通过存储获得近似结果 在浏览器cookie中的时间,并根据它显示/隐藏div。 Cookie可以在javascript和PHP中读取,无论适合你,都可以显示/隐藏div。
答案 3 :(得分:0)
其他可以使用cookies,您可以使用localStorage存储用户上次访问该页面的时间。