Отмена / Отмена / Подтверждение события изменения состояния HTML 5 (onpopstate) - PullRequest
6 голосов
/ 30 декабря 2011

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

Есть ли способ сделать это с помощью API истории HTML5? Или любым другим способом с тем же результатом?

Ответы [ 2 ]

0 голосов
/ 14 июня 2013

Не знаю, поможет ли это в вашей ситуации, но Sammy.js, популярная библиотека хеш-маршрутизации, имеет обработчик до . Я использовал его в своем приложении для записи ранее использованного хэша, и если это хэш, я хочу помешать им покинуть его, возвращение false сохранит их на этой странице. Вам все еще нужно переписать URL, чтобы отобразить предыдущую страницу, но, похоже, он работает.

См. мой ответ в этой другой теме для получения дополнительной информации.

0 голосов
/ 30 декабря 2011

Полагаю, вы могли бы изменить поведение pushState, чтобы запросить подтверждение перед отправкой нового состояния:

// Store original pushState
var _pushState = window.history.pushState;
// Some bad global variable to determine if confirmation is needed
var askForConfirm = true;
// Modify pushState behavior
window.history.pushState = function() {
    if(!askForConfirm || confirm('Are you sure you want to quit this page ?')) {
        // Call original pushState
        _pushState.apply(window.history,arguments);
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...