Я создал всплывающее модальное окно для моей HTML-страницы, используя этот учебник:
https://www.w3schools.com/howto/howto_css_modals.asp
То, что я хотел бы сейчас сделать с помощью файлов cookie, - это помнить, было ли модальное отображение или скрытие, когда пользователь покинул страницу, и после того, как он вернулся, и модальное отображение, когда пользователь покинул страницу, оно должно отображаться как отображаемое.
Это код скрипта для модального всплывающего окна:
<script>
var modal = document.getElementById('myModal');
var btn = document.getElementById("logo");
var span = document.getElementsByClassName("close")[0];
btn.onclick = function() {
modal.style.display = "block";
}
span.onclick = function() {
modal.style.display = "none";
}
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
Таким образом, когда пользователь нажимает на логотип, появляется модальное окно, а когда пользователь нажимает в любом другом месте, оно исчезает.
Теперь здесь я пытался настроить cookie-файл, чтобы он запоминал состояние модального окна и загружал его соответственно, когда пользователь возвращается на страницу:
<script>
$(document).ready(function(){
var expiration = new Date(Date.UTC(2018, 8, 1)).toUTCString();
var cookie = escape(popup) + "=" + escape(modal.style.display) + ";expires=" + expiration + ";";
document.cookie = cookie;
// read cookie
var state = modal.style.display
var key = modal.style.display + "=";
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
while (cookie.charAt(0) === ' ') {
cookie = cookie.substring(1, cookie.length);
}
if (cookie.indexOf(key) === "block") {
modal.style.display = "block";
}
else if (cookie.indexOf(key) === "none") {
modal.style.display = "none";
}
}
});
</script>
Я не уверен, правильно ли я это делаю. Я искал в Интернете решение, но ничего не смог найти.
Еще одна вещь. Если в браузере отключен JavaScript, я хочу, чтобы модальное поле отображалось постоянно. Как бы я поступил так?
Заранее спасибо.