#angular #angular-local-storage
Вопрос:
Я попытался window.onbeforeunload
войти onDestroy
, но оба также очищают данные при закрытии вкладки. Я также пробовал использовать sessionStorage
, но ваши данные также удаляются.
Комментарии:
1. Я считаю, что в вашем приложении невозможно провести различие между закрытием браузера и закрытием вкладки
2. Я заметил, что, когда я закрываю вкладки, данные sessionStorage остаются.
Ответ №1:
Вы можете попробовать использовать файл cookie, в котором будет храниться флаг. Файл cookie будет существовать только для сеанса. Если файл cookie отсутствует, вы удаляете все текущие данные в своем локальном хранилище.
// get cookie var cookiename = getCookie("data_keep_flag"); if (cookiename == null) { localStorage.removeItem("session_only_data"); } // Make new session-only cookie flag document.cookie = "data_keep_flag=keep; expires=0; path=/"; //function getCookie function getCookie(name) { var dc = document.cookie; var prefix = name "="; var begin = dc.indexOf("; " prefix); if (begin == -1) { begin = dc.indexOf(prefix); if (begin != 0) return null; } else { begin = 2; var end = document.cookie.indexOf(";", begin); if (end == -1) { end = dc.length; } } // because unescape has been deprecated, replaced with decodeURI //return unescape(dc.substring(begin prefix.length, end)); return decodeURI(dc.substring(begin prefix.length, end)); } localStorage.setItem("session_only_data", "new_data");
Комментарии:
1. Большое вам спасибо за ответ, есть ли способ обойтись без использования кока-колы, мне действительно нужно использовать localStorage
2. элементы в localStorage по умолчанию должны оставаться в сеансах