Когда пользователь закончит ввод данных на странице, я хочу, чтобы он вернулся на предыдущую страницу (например, Главная страница -> Страница ввода).Если я перенаправлю их, когда они нажмут кнопку «Отправить», я получу круговую историю (Главная страница -> Страница ввода -> Главная страница).Следовательно, когда пользователь нажимает «Отправить», я вызываю window.history.back()
.
. Чтобы предотвратить потерю данных, я прослушиваю событие beforeUnload.Если пользователь не отправил форму, я хочу убедиться, что он знает, что он потеряет свои изменения.
Проблема, с которой я столкнулся, заключается в том, что если пользователь пытается вернуться без отправки своих данных, нажмите кнопку "Отмена".чтобы остаться на странице, а затем нажмите кнопку Отправить.1-й раз, когда они получают ответный удар, отменяется, а затем после отправки я выполняю history.back (), но в итоге происходит возврат 2 записей в истории вместо 1. Это почти как если бы я отменял событие возврата, как предыдущий URL(Главная страница) удаляется из стека истории все вместе.Следовательно, нажатие кнопки «Отправить» проходит мимо этой страницы и обратно на страницу «Новая вкладка».
Я знаю, что управление стеками безумно сложно, но я не могу понять, как перейти к предыдущему URL, если пользователь отменяет onBeforeUnload дляоставайтесь на странице и отправляйте хиты.Похоже, если пользователь отменяет его, когда я вызываю history.back (), он должен вернуться на главную страницу.