¿如何在一天只展示一次特定的容器?

时间:2016-05-15 05:18:03

标签: javascript html5 cookies

我需要在某些用户访问网页时在页面底部显示典型的“使用Cookie”消息,并且只是在白天显示一次,我正在尝试但我的代码却无法正常工作。这是我到目前为止的代码......

<div id="cookie1"> </div>
<button id="botoncookie">Acept</button>





   <script type="text/javascript">
document.getElementById('cookie1').style.bottom = '-50px';
var expiresdate =  5000 ; //1 day

$('#botoncookie').on('click',function(){
var mensaje = document.cookie.split('cookie1=')[1] + expiresdate; 
$('#botoncookie').hide();
$('#cookie1').hide();
});

if(mensaje != null){
 document.getElementById('cookie1').style.display = 'none'; 

}else{
 document.cookie = 'cookie1=visto;path=/';
}
    </script>

2 个答案:

答案 0 :(得分:0)

设置一个过期时间为24 * 60 * 60的cookie,每当加载一个页面时,检查cookie是否存在,否则,显示该消息。

答案 1 :(得分:0)

页面加载时执行以下功能。这将检查何时显示cookieMsg。如果今天已经显示,则无需显示。作为边界情况,对于第一次加载,它将为null并且无论如何都将起作用。

编辑:在之前的代码片段中,我只是比较了包含时间的日期,您只需要专门检查日期。

function displayMsg(){
  var today = new Date();

  var lastDisplayedOn = localStorage.getItem('cookieLastDisplayed');
  if(lastDisplayedOn){
    var ld = new Date(lastDisplayedOn)
    if(today.getDate() == ld.getDate() && today.getMonth() == ld.getMonth() && today.getFullYear() == ld.getFullYear()){
        donotDisplay()
    }else{
        displayCookie()
    }
  }else{
        displayCookie()
  }
}