Подтвердить что ты не робот

Как я могу установить 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>
4b9b3361

Ответ 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.