2016-02-04 30 views
0

我的控制器中有一个函数用于更改浏览器的URL,但当用户单击后退按钮时,我需要保留真正的上一页。

例如:

用户位于/ home并导航到/ article1。当用户滚动页面使用我更改URL,例如/第二条:

$location.path('article2'); 

但是如果用户按下后退浏览器按钮留在/第二条的URL更改为/第一条,我真的需要重定向导航到/ home。

我用这个代码:

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

但是,这并不因为在网址的变化使用$位置工作,历史状态自动改变。

我该如何保留导航?

回答

0

您也可以在本地存储上一页以返回。我有一个应用程序,它有一个后退按钮,允许您返回到您所浏览的页面。尝试这样的:

sessionStorage.previousPage = "mypage"; 

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

是的这是一个很好的解决方法。但问题是如何拦截浏览器后退按钮? –

+0

你不能,我轻描淡写地说,因为有人解决了这个问题。所有浏览器在处理后退按钮方面都有所不同,因此很难做到这一点。这就是为什么我们想出上述解决方案作为解决浏览器后退按钮的方法。请如果你找到我想知道的方式,因为我们可以在我们的应用程序中使用它。 – Ohjay44