2016-05-15 38 views
-1

我需要在页面底部显示一些用户访问网页时使用cookies的信息,并且在一天中只显示一次,但我的代码却无法正常工作。这里的代码,我到目前为止...¿如何在一天只显示一次特定容器?

<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> 

回答

0

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

+0

是这样的想法,当然,但我想和本地存储这样做,因为我有更多的空间storare它 – kukiko11

0

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

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

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() 
    } 
} 
+0

没有工作:C – kukiko11

+0

@ kukiko11我已经改变了片断,我最早是比较包括时间的原始日期也是如此。请试试这个。我已经在Chrome上进行了测试。 –