Угловой как удалить localStorage при закрытии браузера, но не удалять при закрытии новых вкладок

#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 по умолчанию должны оставаться в сеансах