#javascript
#javascript
Вопрос:
Всякий раз, когда пользователь в браузере нажимает на closeBtn. Как мне сделать так, чтобы эффект оставался навсегда на его веб-сайте, пока он не изменит свой IP-адрес или браузер? Я хочу, чтобы класс none не отображался в его представлении постоянно.
let cookiebox = document.getElementById('cookie-box');
let closeBtn = document.getElementById('close-btn');
closeBtn.addEventListener("click", () => {
cookiebox.classList.toggle("none")
})
Комментарии:
1. Вы имеете в виду, что не хотите
none
, чтобы он исчезал, когда пользователь нажимает на него снова? Если это так, вы могли бы использоватьcookiebox.classList.add("none");
2. Сохраните информацию, на которую они уже нажали, в файле cookie или localStorage, чтобы вы могли прочитать ее оттуда. Затем прочитайте эту информацию, когда страница загрузится, и спрячьте поле, когда это применимо.
3. После нажатия closeBtn он скрывает всплывающее окно. Я хочу, чтобы всплывающее окно больше никогда не появлялось.
4. Как мне сохранить это в локальном хранилище?
5. Вы можете использовать
Window.localStorage
для сохранения и загрузки из локального хранилища. вы можете прочитать эту ссылку
Ответ №1:
Я бы предложил сохранить закрытый флаг sessionStorage
. Данные в sessionStorage очищаются при завершении сеанса страницы…
- Сеанс страницы длится до тех пор, пока открыт браузер, и сохраняется при перезагрузке и восстановлении страницы.
- Открытие страницы на новой вкладке или в окне создает новый сеанс со значением контекста просмотра верхнего уровня, который отличается от того, как работают сеансовые файлы cookie.
- Открытие нескольких вкладок / окон с одним и тем же URL-адресом создает хранилище сеансов для каждой вкладки / окна.
- Закрытие вкладки / окна завершает сеанс и очищает объекты в sessionStorage.
Подробнее о хранилище сеансов можно найти здесь: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
Грубым примером такой реализации может быть:
let cookiebox = document.getElementById('cookie-box');
let closeBtn = document.getElementById('close-btn');
function closeCookieBox() {
cookiebox.classList.add("none");
}
if (sessionStorage.getItem("closed_cookie_box")) {
closeCookieBox();
}
closeBtn.addEventListener("click", () => {
closeCookieBox();
sessionStorage.setItem("closed_cookie_box", true);
});
Комментарии:
1. Спасибо. Это то, что мне было нужно