Почему не отключается popup?

Ссылка скопирована
1 ответ

На сайт добавил дисклеймер типа "Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с сайтом, Вы разрешаете..."

Это popup, который появ-ся,когда заходишь на сайт. Можно нажать "Принять" или нажать крестик, чтобы закрыть попап.
Так вот проблема в том, что нажимаешь "Принять", а попап возникает каждый раз, когда переходишь по страницам сайта.
Код:

(function(document, undefined){     let cookieBanner = document.getElementById('cookie-banner');      if(cookieBanner !== null){         let closeButton = document.getElementById('close_cookie_agreement_block');         let agreeButton = document.getElementById('cookie_policy_agree');          let close = function (){             cookieBanner.remove();             cookieBanner = null;         };          let updateCookie = function(){             let date = new Date(Date.now() + 365*86400e3);             date = date.toUTCString();             document.cookie = 'NOT_SHOW_COOKIE_BANNER=Y; path=/; expires=' + date;         };          closeButton.addEventListener('click', close, {once: true, passive: true});         agreeButton.addEventListener('click', function (){             updateCookie();             close();         }, {once: true, passive: true});     } })(document);

(function(document, undefined){ let cookieBanner = document.getElementById('cookie-banner'); if(cookieBanner !== null){ let closeButton = document.getElementById('close_cookie_agreement_block'); let agreeButton = document.getElementById('cookie_policy_agree'); let close = function (){ cookieBanner.remove(); cookieBanner = null; }; let updateCookie = function(){ let date = new Date(Date.now() + 365*86400e3); date = date.toUTCString(); document.cookie = 'NOT_SHOW_COOKIE_BANNER=Y; path=/; expires=' + date; }; closeButton.addEventListener('click', close, {once: true, passive: true}); agreeButton.addEventListener('click', function (){ updateCookie(); close(); }, {once: true, passive: true}); } })(document);

Почему так происходит? Код взят с интернетов.

Дополнительно:

Для этого кода на бэкенде должна проверяться кука NOT_SHOW_COOKIE_BANNER и, если она установлена в 'Y', то баннер вообще не должен выводиться на страницу.

  • правильно понял, что со стороны фронта все сделано, остальное - дело бэкенда?
  • rinatoptimus, Ну, при желании, можно и на фронте проверять куку и сразу скрывать баннер. Но проще отключать его на бэке.
  • бред. ни к чему тут бек
    кука отлично проверяется на фронте: если уже есть и равна Y не заходишь в условие if(cookieBanner !== null)

    let cookieBanner = document.getElementById('cookie-banner');
    let showCookieBanner = readCookieByName('NOT_SHOW_COOKIE_BANNER') != 'Y'

    if (cookieBanner && showCookieBanner) {
    ...

    как прочитать куку по имени на фронте ответит гугл

  • necrodeflorator, Вот только сначала баннер будет показан, а только потом, когда загрузится DOM и скрипт, баннер будет убран. Или надо, опять же, с бэка передавать баннер скрытым, а потом скриптом его включать.
  • Rsa97, баннер должен быть изначально скрыт стилями, а скриптом уже показывать в блоке if.

    Согласен, не дописал

    Вешать на бек логику отображения этой филькиной грамоты всё равно нет смысла

  • necrodeflorator, Тогда и в куки её пихать не надо, зачем на сервер гонять лишнее. Достаточно localStorage. А раз что-то пишется в куки, то, видимо, обработка предполагается бэком.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

Для того чтобы понять, почему popup не отключается, нужно провести некоторые проверки и анализировать код, который отвечает за отображение popup на вашем сайте. Вот несколько шагов, которые могут помочь вам разобраться в этой проблеме:

1. Проверьте, что вы правильно инициализируете скрипт, который отвечает за отображение popup. Убедитесь, что вы вызываете функцию или метод, который отключает popup, в нужном месте и с правильными параметрами.

2. Проверьте CSS стили, которые могут влиять на отображение popup. Убедитесь, что нет каких-либо стилей, которые могут перекрывать или скрывать popup.

3. Проверьте, есть ли какие-либо JavaScript ошибки в консоли браузера. Ошибки в JavaScript коде могут быть причиной некорректной работы popup.

4. Проверьте, что у вас нет блокировщиков popup-окон или других расширений браузера, которые могут блокировать отображение popup на вашем сайте.

Если после выполнения этих шагов проблема не будет решена, вам может потребоваться провести дополнительное исследование кода и настроек вашего сайта. Может быть, вам придется обратиться к разработчику или специалисту по веб-разработке для более подробной диагностики проблемы.

Пример использования тега

 для отображения кода:
 
<pre lang="php">
function disablePopup() {
    // код, который отключает popup
}

для отображения кода: <pre lang="php"> function disablePopup() { // код, который отключает popup }

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно