Как я могу установить cookie для истечения срока действия через x дней с помощью этого кода?
Возможный дубликат:
Что такое "лучший" способ получить и установить одно значение cookie с помощью JavaScript
Итак, у меня есть этот код (который я не сделал), который в основном создает контейнер с 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>
Ответы
Ответ 1
Чтобы установить 30-дневный срок действия вашего файла cookie, вам нужно добавить время истечения срока действия в файл 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.toGMTString();
} else {
expires = "";
}
document.cookie = name+"="+value+expires+"; path=/";
}
Установив соответствующую дату истечения срока действия в файле cookie, он будет автоматически удален в это время.
Затем, когда ваша страница загружается (вам придется подождать, пока страница закончит загрузку, прежде чем пытаться ее изменить), вы можете проверить, установлен ли ваш файл cookie closeAd
, и если это так, выполните код, чтобы скрыть объявление. Для более впечатляющего просмотра без мерцания (поэтому объявление не открывается сначала, а затем закрывается), вы можете начать с скрытого объявления и показывать его только в том случае, если нет cookie. Или вы можете динамически добавлять его на страницу, если нет cookie.