В качестве последней страницы на сайте электронной коммерции меня попросили запретить пользователю возвращаться на предыдущую страницу платежей, чтобы он не мог заказать тот же продукт снова.
Сайт разработан с использованием Angular 7
На предыдущей странице создается заказ из цитаты и направляется на страницу подтверждения.
Я реализовал решение в приведенном ниже коде, которое, похоже, работает в большинстве ситуаций. В IE, Firefox, когда я перехожу на страницу подтверждения по маршруту, вы не можете использовать кнопку «Назад» или ярлык, чтобы вернуться на предыдущую страницу.
Однако: в Chrome, если вы никак не взаимодействуете со страницей, вы можете нажать кнопку «Назад», чтобы вернуться назад. Если вы взаимодействуете со страницей, например, щелкните по нему, добавьте какие-либо подробности в текстовое поле и т. д., после чего вы не сможете вернуться назад.
preventBackButton() {
window.history.pushState(null, null, window.location.href);
window.onpopstate = () => {
window.history.pushState(null, null, window.location.href);
};
}
Проблема: при нажатии кнопки "Назад" в Chrome окно не запускается.