Member 11052432 Ответов: 1

Различайте события перезагрузки/обновления/F5 браузера и закрытия


Всем Привет,

Я столкнулся с ситуацией, когда пользователь хочет показать сообщение при обновлении браузера или закрытии браузера.
Это я сделал с помощью события onbeforeunload, которое вызывается при обновлении браузера или явном закрытии.

В моем приложении я использую локальное хранилище для сохранения состояния страницы, то есть получаю одни и те же данные с одной и той же страницей во время обновления. Так что я могу получить данные из локального хранилища.

Но когда я явно закрываю браузер, то в этом случае я хочу очистить ключи локального хранилища с помощью метода localStorage.clear ().

Но я не могу отслеживать события close, а также refresh/F5, потому что событие onbeforeunload вызывается для обоих действий.

Я попробовал погуглить, что позволяет нам загружать/onunload события, но они также не работают.

Когда я обновляю браузер/закрываю браузер, он должен запросить подтверждающее сообщение
1). когда нажимаете кнопку "остаться на странице", то ничего не делаете.
2). Когда вы нажимаете кнопку "покинуть эту страницу", то я хочу проверить, происходит ли обновление браузера или вызывается кнопка закрытия, и соответственно я хочу очистить локальное хранилище.
Это означает, что если вы обновитесь, то не очистите локальное хранилище. Однако закрытые затем очищают локальные ключи хранения.

Я также использовал хранилище сеансов, но мое требование-использовать локальное хранилище.

Так как же достичь вышеперечисленных сценариев:-

Мой код находится ниже:-

$(window).on('mouseover', (function ()
            {
                window.onbeforeunload = null;
            }));

            $(window).on('mouseout', (function ()
            {
                 window.onbeforeunload = ConfirmLeaveMessage;
            }));

            function ConfirmLeaveMessage()
            {
                //return undefined;
                return "Are you sure you want to leave this page without saving?";
            }


Что я уже пробовал:

Я попробовал вышеописанную функцию.
Даже попробовал события window.onload и window.onunload. Но ни один из них не работает по моему сценарию.

1 Ответов

Рейтинг:
0

F-ES Sitecore

Вы не можете узнать, когда пользователь закрыл свой браузер. Если вы не хотите, чтобы данные сохранялись, используйте хранилище сеансов, а не локальное хранилище

Свойство Window sessionStorage[^]