Уж не знаю зачем придумали это недоразумение, т.к. куки используются практически на всех сайтах. Это счетчики посещений, реклама, виджеты соц сетей или обратной связи. авторизация пользователей и т.д.
Нужно ли использовать такое предупреждение и на каких сайтах, я не знаю, в подробности не вдавался. Но можно почитать, например «Обязательно ли на данный момент наличие уведомлений об обработке файлов cookie на сайте интернет-магазина?» или «Как избежать штрафов за куки и политику конфиденциальности» (публикации не новые, может еще законов напридумывали) или поискать в интернетах.
Меня просили пару раз поставить такое окошко, поэтому и решил сделать такую заметку.
Если на сайте используется CMS WordPress, то можно воспользоваться плагином Cookie Notice for GDPR & CCPA (посмотреть скриншот его настроек) или дргуими.
Для самостоятельной установки используем коды ниже
HTML:
Можно расположить в любой части страницы
1 2 3 4 5 6 7 |
<div class="cookie_notice"> Этот сайт использует файлы cookies и сервисы сбора технических данных посетителей (данные об IP-адресе, местоположении и др.) для обеспечения работоспособности и улучшения качества обслуживания. Продолжая использовать наш сайт, вы автоматически соглашаетесь с использованием данных технологий. <div> <a class="cookie_btn" id="cookie_close" href="#close">Согласиться</a> <a class="cookie_btn" href="#politika">Политика конфиденциальности</a> </div> </div> |
CSS:
Стили кнопок взяты из темы: «Оформление кнопок на CSS». При желании можно выбрать другие или использовать свои.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
.cookie_notice { display: none; position: fixed; z-index: 9999999; bottom: 0; left: 0; right: 0; text-align: center; font-size: 15px; font-family: Verdana, sans-serif; color: #FFF; background: #337AB7; padding: 10px 20px; border-top: 4px solid #BFE2FF; } /* Оформление кнопок */ .cookie_btn { display: inline-block; margin: 10px 6px 4px 6px; text-decoration: none; position: relative; font-size: 13px; padding: 4px 12px; color: #FFF; font-weight: bold; text-transform: uppercase; background: #337AB7; border: 2px solid #BFE2FF; } .cookie_btn:hover { color: #FFF; } .cookie_btn:after, .cookie_btn:before { position: absolute; height: 2px; left: 50%; background: #FFF; bottom: -6px; content: ""; transition: all 280ms ease-in-out; width: 0; } .cookie_btn:before { top: -6px; } .cookie_btn:hover:after, .cookie_btn:hover:before { width: 100%; left: 0; } |
JS:
В примере на сайте не используются куки, и обновив страницу после закрытия окна, оно появится снова.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
// функция возвращает cookie с именем name, если есть, если нет, то undefined function getCookie(name) { let matches = document.cookie.match(new RegExp( "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" )); return matches ? decodeURIComponent(matches[1]) : undefined; } let cookiecook = getCookie("cookiecook"), cookiewin = document.getElementsByClassName('cookie_notice')[0]; // проверяем, есть ли у нас cookie, с которой мы не показываем окно и если нет, запускаем показ if (cookiecook != "no") { // показываем cookiewin.style.display="block"; // закрываем по клику document.getElementById("cookie_close").addEventListener("click", function(){ cookiewin.style.display="none"; // записываем cookie на 1 день, с которой мы не показываем окно let date = new Date; date.setDate(date.getDate() + 1); document.cookie = "cookiecook=no; path=/; expires=" + date.toUTCString(); }); } |
Добавляю на сайт, при наведении на кнопку ссылается на #close ссылку, но окно не уходит
Здравствуйте. Установил. Все замечательно. Но только одна проблемка - если нажать "Согласен", то перейдя на другую страницу, оно опять всплывает. Так не должно быть! Подскажите, пожалуйста, как это исправить..?
С куками что то, они должны записываться и окно не вылетать вторично.
Как вариант заменить из на LocalStorage
Спасибо!
//Как вариант заменить из на LocalStorage
Из на что? Что на что менять? И где ? Поставил плагин....все записывает и работает
Плагин ставил на Joomla. А еще поставил как здесь коды на Битрикс (без плагинов, по этой инструкции). И все записывает, все работает. У Джумлы была проблема, что куки не записывала, их надо в настройках прописать. Спасибо автору. Полезная статья!
Автору плюс к карме!
Но вот с че я столкнулся:
Браузер ругается и сообщает, что есть ошибка в этой строке:
// показываем
cookiewin.style.display="block";
Но я понять не могу, что не так?
Где искать и как править.
А какая именно ошибка в консоле?
Uncaught TypeError: Cannot read properties of undefined (reading 'style')
at common.js?v=3:14:15
Подскажите пню. ))) Надо вставлять все эти три кода в соответствующие места?
CSS обычно в шапку, JS в подвал, а HTML в любое место страницы.
Благодарю.
Можно еще тупой вопрос? Я делаю сайт на webflow и модальное окошко уведомления делаю прям в редакторе. Мне надо тогда только JS вставить в подвал? Или так оно не сработает? И надо со всеми русскими словами переносить? ))) Не знаю об этом ничего. ))
Я без понятия как на webflow....
Это одна из причин, почему не люблю всякого рода редакторы, контсрукторы и т.д.
Глядеть нужно, как там что устроено.
Здравствуйте! Можно ли как то адаптировать скрипт под другое? У меня есть небольшие плашки уведомдений, который можно закрыть, но обновив страницу мы их снова наблюдаем. Пробовал подбить код – не получилось...
JS код дан с куками, чтобы окно не показывалось при обновлении страницы и вообще, сроком на 1 день.
Если у вас оно вылетает заного, то проблема где то в них.
понял, ну вот сижу неделю. Размышляю..
что могу делать не так - для меня аока загадка...
Дайте ссылку на результат, погляжу что у вас там как.
Светлана, да!
Придётся это сделать поочередно! :0)
Господа и дамы! Всех с наступающим!
Нужно доработать скрипт, при обновлении страницы снова вылазит оповещение.
Код, который описан - там с куками
Код, который используется для примера - нет кук (иначе, если нужно будет еще раз увидеть это окошко, вы его не увидите).
Спасибо, ещё вопросик по ошибке:
Uncaught TypeError: Cannot read property 'style' of undefined
at script.js?ver=1.1:13
что он означает?
нашёл ошибку)))
нашел ошибку и даже не написал в чем она была...
Вижу, что сверху написано про то, что сайт не использует куки, но как сделать так, чтобы при перезагрузке уведомление исчезало?
Код в примере с куками, должно бы работать.
А сайт можно посмотреть? Что то с ними у вас не так, или с их путями.
Или в ВК напишите, там проще будет разобраться
Тут же у них на сайте тож глюкнутый скрипт, при обновлении страницы снова вылазит
Привет! я вставляю js, кука отоброжается, но при перезагрузке страницы уведомление снова появляется, хотя кука сохранена
очень интересная статья