JS Уведомление о куки
2024-03-10
Уже более пяти лет, почти все сайты помешались на всплывающих баннерах, перекрывающих контент, сообщающих о том, что на сайте используются куки. Лично мне как пользователю это совершенно не нужно, я и так знаю, что "Большой брат" следит за мной. И самое интересное, что до сих пор нет никакого четкого основания к уведомлению всех пользователей об использовании этих cookies.
С какого-то перепугу, куки-файлы начали относить к персональным данным, что очень странно, т.к. в абсолютном большинстве случаев это чисто техническая информация, позволяющая сайтам запомнить сессию и настройки пользователя, например товары в корзине в каком-либо интернет-магазине.
Тем не менее, бизнес часто действует не по букве закона, а в связи с "рекомендациями" или "требованиями" регуляторов, потому что лучше перестраховаться, т.к. затраты времени и денег на споры с той же налоговой обойдутся дороже чем победа в споре.
В общем, никто не хочет лишних проблем. И гораздо проще показать один раз баннер, чем потом доказывать, что вы не собираете никаких личных данных и не передает их третьим лицам и т.д.
Всего несколько строчек javascript кода лишат опасений любого владельца сайта.
//Функция установки куки и скрытия баннера
function set_cookie(c_name, value, exdays) {
if (typeof (exdays) == 'undefined') {
exdays = '360';
}
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
var alarm = document.getElementsByClassName("cookies");
alarm[0].style.display = "none";
};
//Функция чтения куки
function get_cookie(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 true;
}
}
return false;
};
//Если нет куки, то показываем баннер
if (get_cookie("cookie_attention")==false){
let div = document.createElement('div');
div.className = "cookies";
div.innerHTML = "<p>Мы используем файлы cookie для комфортного взаимодействия с нашими пользователями. Продолжая работу с сайтом, вы даете свое <a href=\"\">согласие на использование ваших cookie файлов</a>.</p> <span onclick=\"set_cookie('cookie_attention','1');\">X</span>";
document.body.append(div);
}
В этом скрипте большую часть занимают функции чтения и записи куков, чем сам баннер. Работает скрипт по такой логике:
Проверяем наличие куки с именем "cookie_attention", если такого нет, то показываем баннер, на баннере делаем кнопку, которая закрывает его и одновременно устанавливает куку "cookie_attention", теперь при последующем открытии страницы баннер появляться не будет.
Для баннера нужно сделать стили, чтобы все было красиво. Для этого баннеру установлен класс cookie. Пример файла стилей:
.cookies{position: fixed; bottom: 0; background: gray; width: 100%; opacity: 0.8;padding: 12pt;}
.cookies p{color:white; display:inline;}
.cookies a{color:#7cbb64;}
.cookies span{color: white;position: absolute; right: 50pt; background: #7cbb64; padding: 5pt; border-radius: 50%; line-height: 10pt; width: 10pt; text-align: center;}
Скачивайте готовый набор и устанавливайте на свой сайт.
Рабочий пример этого скрипта вы можете увидеть на этой странице.
Если Вам интересно лично мое мнение, то я считаю, что кроме уведомления о том, что сайт использует для работы кукисы, необходимо в обязательном порядке сообщать пользователю, что сайт использует вычислительную мощь компьютера пользователя, использует и нагружает видеокарту и процессор для отрисовки элементов сайта и интерпретации разметки, стилей и скриптов.
О том, что для работы сайта используется монитор для его отображения, а так же электричество и услуги интернет-провайдера, за которые необходимо будет платить!
Так же обязательно нужно сообщить пользователю, что сайт для своей работы использует HTML-разметку, CSS-стили, JS-скрипты.
В общем чем больше сообщений и всплывающих баннеров тем лучше. Ведь правда же лучше перестраховаться чем, доказывать свою правоту?
