2016-02-04 2 views
0

У меня есть функция в моем контроллере, которая меняет URL-адрес браузера, но мне нужно сохранить реальную предыдущую страницу, когда пользователь нажимает кнопку «Назад».

Например:

Пользователь в/дома и перейти к/статье 1. Когда пользователь прокручивает на странице изменить URL, например, в/Статья 2 с помощью:

$location.path('article2'); 

Но если пользователь нажимает кнопку назад браузера, оставаясь в/Статья 2 изменение URL в/статье 1, и мне действительно нужно перенаправить навигация в/home.

Я использовал этот код:

var previousPage = document.referrer; // Get the previous location on page load 
history.pushState({}, '', previousPage); // Alter the history adding the previous page 

Но это не работает, потому что в изменении URL с помощью $ местоположения, состояние истории меняется автоматически.

Как сохранить навигацию?

ответ

0

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

sessionStorage.previousPage = "mypage"; 

function goBack(){ 
$location.path(sessionStorage.previousPage); 
}; 
+0

Да, это хороший способ решить эту проблему. Но проблема в том, как перехватить кнопку «Назад в браузере»? –

+0

Вы не можете, и я говорю это легко, потому что есть шанс, что кто-то решил эту проблему. Все браузеры отличаются тем, как они обрабатывают кнопку «Назад», поэтому это очень сложно сделать. Вот почему мы придумали решение выше, как работу с кнопкой назад. Пожалуйста, если вы найдете способ, который мне очень хотелось бы узнать, потому что мы можем использовать его в нашем приложении. – Ohjay44

 Смежные вопросы

  • Нет связанных вопросов^_^