2014-05-20 2 views
3

Мне нужно очистить локальное хранилище, когда мой сайт закрыт со всех вкладок или окон браузера закрыт, нажав кнопку закрытия или любой короткий ключ, у меня есть Google для него с 2 -3 дня, но не получило никакого успеха. Есть ли у вас какой-либо способ достичь этого?Удалите/очистите локальное хранилище, когда все вкладки закрыты.

+0

очистить хранилище во время события «разгрузка». – Christoph

ответ

0

Вы можете использовать onunload событие в вашей body тег, чтобы вызвать локальную очистку памяти:

<body onunload = "javascript:window.localStorage.clear()">

Существует один нюанс, однако, onunload событие поддерживается в IE, Firefox и Safari, но не поддерживается в Chrome или Opera.

+0

где у вас есть информация, что хром не поддерживает событие 'unload'? – Christoph

+0

Прочтите внимательно - «правильно», означает, что у более старых версий Chrome есть проблемы с ним, http://stackoverflow.com/questions/12182559/i-cant-trigger-the-unload-event-in-chrome, а также https : //www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/ – bodi0

+0

привет @ bodi0 и christoph, но если пользователь нажмет ctrl + f5 или кнопку обновления, я хочу, чтобы локальное хранилище оставалось то же самое, если на 2 вкладках открываются мои сайты, а некоторые закрываются только одной вкладкой, то также остается местное хранилище, когда все вкладки закрыты из браузера, тогда мне нужно только удалить локальное хранилище. –

0

Вместо localStorage вы должны использовать младшего брата sessionStorage. Он делает именно то, что вы хотите - хранить данные до конца сеанса.

Check out this example. Перезагрузите его пару раз, чтобы увидеть счетчик приращений. После закрытия окна счетчик будет сброшен.

1

Вы можете использовать sessionStorage: если вы хотите обрабатывать другие вкладки. localStorage: только в текущих вкладках.

window.onbeforeunload = function(){ 
     window.localStorage.clear(); 
     window.sessionStorage.clear(); 
} 

Надеюсь, это поможет.

+1

очистка сеансаStorage в выгрузке Событие нарушит функциональность, так как нормальное обновление также вызывает это событие. – Christoph

+0

Будет ли то же самое с событием onbeforeunload? Спасибо за информацию о перерыве «разгрузки». Очень полезно. – LogPi

-3
window.localStorage.removeItem(key); 
+0

Код без объяснений не помогает. Здесь вы должны * хотя бы * объяснить, при каких обстоятельствах этот код следует вызывать. Кроме того, код, который у вас есть, фактически не очищает * хранилище: он удаляет только один ключ из хранилища. Я добавлю, прежде чем вы начнете редактировать это, если вы отредактируете его таким образом, чтобы оно представляло уже представленное решение, вы должны просто удалить его. Дублированные решения не приветствуются. – Louis

Смежные вопросы