2016-02-04 12 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