14.12.2017, 10:20

[JS] Komunikat o ciasteczkach na stronę

Witam

Jest, to aktualizacja dotycząca starego wpisu odnośnie ciasteczek na stronę www. Czyli przykładowy kod jaki można używać do wyświetlania komunikatu o ciasteczkach, zwany po ang. CookieBar. Z tego co zauważyłem poprzednia wersja ma jakieś problemy na niektórych stronach i znalazłem inne rozwiązanie, troszkę przerobiłem i udało mi się osiągnąć prosty kod w samym JavaScript.

Wystarczy kawałek kodu CSS (dla przykładu, resztę ostylujecie sobie sami):
[kod].cookies-notice {
    display: none;
}[/kod]
Troszkę HTML-a:
[kod]<div class=”cookies-notice”>
    <div class=”cookies-text”>Komunikat cookies</div>
    <a href=”#” class=”accept-cookies”>OK, zamknij</a>
</div>[/kod]
No i to co najważniejsze, to kod JavaScript bez którego ciasteczka nie będą działać:
[kod]function setCookie(name, value, days) {
    var date = new Date();
    date.setTime(date.getTime() + (days*24*60*60*1000));
    var expires = „; expires=” + date.toGMTString();
    document.cookie = name+”=”+value+expires+”; path=/”;
}

function getCookie(name) {
    var nameEQ = name + „=”;
    var ca = document.cookie.split(’;’);
    for(var i=0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ’ ’) c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

var cookiesBar = document.getElementsByClassName(„cookies-notice”)[0];
var cookiesAccept = cookiesBar.getElementsByClassName(„accept-cookies”)[0];

window.onload = checkCookies;

function checkCookies() {
    if (getCookie(’cookies_accepted’) != 'T’) {
        cookiesBar.style.display = „block”;
    }
}

cookiesAccept.onclick = function(e){
    e.preventDefault();
    cookiesBar.style.display = „none”;
    setCookie(’cookies_accepted’, 'T’, 365);
};    [/kod]