Отключить только навигацию по кнопке «Назад» браузера (не ссылки в приложении) с AngularJS / Javascript

0

Я работаю над SPA, используя AngularJS. Я хочу перемещаться по состояниям приложения, используя ссылки в приложении, и я хочу предотвратить такую же навигацию при нажатии кнопки "Назад".

Все найденные мной решения, включая $ locationChangeStart в angularJs, предотвращают навигацию, когда я нажимаю ссылки в моем приложении.

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

  • 0
    Это технически невозможно (изменение поведения браузера через javascript), потому что это будет серьезной проблемой безопасности для пользователей. Вам нужно обойти эту проблему. В основном я вижу, как iFrame захватывает для этой цели (в основном, оборачивая ваш контент в iFrame, кнопка «Назад» Brwoser бесполезна для родительского сайта)
  • 0
    возможный дубликат кнопки « Control» или «Отключить браузер назад» с Javascript или AngularJS
Показать ещё 2 комментария
Теги:
browser
back-button

1 ответ

1

Самый простой способ сделать это - отобразить переходы из текущего состояния приложения (url) в действительные состояния следующего приложения (urls) и только предотвращатьDefault, если не выполняется переход из текущего состояния в значение, заданное с помощью $locationChangeStart,

Если вы это сделаете, вы не только не позволяете пользователю использовать кнопку "Назад", но и помещать нежелательные URL-адреса в браузере, чтобы создать недопустимое состояние приложения и, возможно, повредить ваше приложение.

Я предлагаю вам не использовать какой-либо метод "history history history.forward", например, связанный в другом ответе, это самый худший UX, сделать его прозрачным для пользователя.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню