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-скрипты.
В общем чем больше сообщений и всплывающих баннеров тем лучше. Ведь правда же лучше перестраховаться чем, доказывать свою правоту?