Нажмите «Закрыть раздел», «Установить файл cookie», «Проверить наличие файлов cookie», если это не так, «Показать раздел» - PullRequest
0 голосов
/ 12 декабря 2018

Название объясняет все это.На самом деле я нигде не смог найти этот конкретный пример кода в Интернете, который заставил бы его работать так же просто, как мой опубликованный скрипт.

Можете ли вы помочь мне понять, почему мой скрипт отображает div, дважды, иногда 3 раза, прежде чем, наконец, не отобразится после того, как cookie был установлен?

Я проверил после загрузки сайта один раз - cookie-файл устанавливается, но при нажатии на другую страницу все еще отображается окно отображения (div).После нескольких щелчков «Я принимаю» он, наконец, больше не отображается.

Я бы хотел выяснить, почему для того, чтобы оставаться закрытым, требуется более 1 клика.Мой код крайне неэффективен?Разве невозможно сохранить такую ​​функцию такой простой, как мой код ниже?

Вот мой код

Загрузка тела:

<body onload="cookiefunction()"

Javascript, который проверяет наличие cookieсуществует, и если не отображать div, и если нет, не отображать div:

function cookiefunction() {

if (document.cookie.indexOf("acceptterms") >= 0) { 
    document.getElementById("notice").style.display = "none";
     } else {
        document.getElementById("notice").style.display = "block"; 
    }
}

Код, который устанавливает cookie при нажатии на ссылку I Accept

function closediv() {
    document.getElementById("notice").style.display ="none";
    document.cookie = "acceptterms=yes; expires=Thu, 18 Dec 2023 12:00:00 UTC";
 }

Divдолжно отображаться: нет, если нажата кнопка «Принять»

<div id="notice" style="display:none;">
<a href="#" id="close" onclick="closediv()">I Accept Terms</a>
</div>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...