这个问题已经在这里有了答案:
9年前关闭。
因此,我有这段代码(我没有制作),该代码基本上使容器带有X,因此当我按X时,div容器关闭。但是,刷新页面时,div容器将再次出现。
当该人按下X按钮时,我该如何做才能使该人永远不会在该页面上再次看到div容器(或一段时间(如30天))?
如果可能的话,我想更进一步,并且当用户按下X按钮时,他/她将永远不会再在我的整个网站上看到div容器,因为我计划在我的整个网站上实现同一个div容器。
希望这不会太令人困惑,希望有人可以帮助我。谢谢!
HTML代码:
<div id="bottom_ad">
<div id="close_ad" onclick="close_bottom_ad();">X</div>
<!-- Ad Content -->
</div>
的CSS
代码:
#bottom_ad
{
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 80px;
background: #000;
}
#close_ad
{
position: absolute;
top: 8px;
right: 8px;
width: 15px;
height: 15px;
color: #fff;
}
JavaScript(在文件底部,标记之前。)
代码:
<script type="text/javascript">
// I may have sorta kinda taken this function from W3Schools. :S
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);
}
}
}
var ad_cookie = getCookie("closedAd");
if (ad_cookie != null && ad_cookie != "")
{
document.getElementById("bottom_ad").style.display="none";
}
function close_bottom_ad()
{
document.getElementById("bottom_ad").style.display="none";
document.cookie = "closedAd=true;";
}
</script>
最佳答案
要在Cookie上设置30天的有效期,您需要在Cookie上添加有效期。这是一个非常简单的cookie函数,可将cookie设置N天:
function createCookie(name, value, days) {
var date, expires;
if (days) {
date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toUTCString();
} else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
通过在Cookie中设置适当的到期日期,届时它将被自动删除。然后,在页面加载时(您必须等到页面加载完成后才能尝试对其进行修改),您可以检查是否已设置cookie
closeAd
,如果已设置,则执行代码以隐藏广告。为了获得更流畅的观看体验(因此,广告不会先显示为打开,然后再关闭),您可以先隐藏广告,然后在没有Cookie的情况下进行展示。或者,如果没有cookie,则只能将其动态添加到页面中。关于javascript - 如何使用此代码将Cookie设置为在x天后过期? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6561687/