2012-06-02 4 views
0

Привет Я использовал localStorage для хранения значения переменной. Проблема в том, что localStorage никогда не сбрасывается с того, что мне удалось найти в Интернете. Мне интересно сбросить localStorage, когда браузер закрыт.Javascript browser close event

Есть ли способ сделать это?

Я попытался использовать $ (window) .unload из jQuery, но обнаружил изменения, связанные с окном, и вскоре он сбрасывает переменную localStorage.

+6

Почему вы используете 'localStorage' для хранения значения, которое вы НЕ хотите сохранять? – mVChr

+0

Cookies должны помочь. –

+0

Я использую только значение, пока браузер не будет закрыт –

ответ

2

Прочитано my answer, в котором я объяснил, как обнаружить браузер закрыть, $ (window) .unload не работает всегда.

<script> 
window.onbeforeunload = function (e) { 

if (localStorage) { 
    localStorage.clear(); 
} 
}; 
</script> 

Но, да, я бы рекомендовал использовать Куки или сессии переменных, которые будут уничтожены в браузере близко вместо LocalStorage.

+0

Почему бы не 'if (localStorage) localStorage.clear()' во всех случаях? – mplungjan

+1

@mplungjan вопрос говорит ** Мне интересно сбросить localStorage, когда браузер закрыт. ** – gopi1410

+0

@mplungjan почему бы не просто 'localStorage.clear()' напрямую? : P оба будут вызывать ошибку, если 'localStorage' не поддерживается. Тролль здесь состоит в том, что 'if (anything)' будет вызывать 'ReferenceError', если' anything' не определен – Esailija

2

Вместо этого вы, скорее всего, захотите использовать window.sessionStorage.

sessionStorage

Это глобальный объект (sessionStorage), который поддерживает область хранения, которое доступно для продолжительности страницы сессии. Сеанс страницы длится до тех пор, пока браузер открыт и сохраняется на странице перезагружает и восстанавливает. Открытие страницы в новой вкладке или окне вызовет новый сеанс.