這聽起來像你想要使用HTML歷史API,如window.history.pushState()
和window.history.popState()
。這聽起來像你想使用瀏覽器滾動。
快速谷歌搜索發現我this documentation about $location 和this documentation about scrolling從AngularJS文檔。
我不知道如何在AngularJS做到這一點,但在jQuery的你可以用pushState()
到一個特定的URL添加到瀏覽器的歷史記錄(這可能是你的同一個頁面上的#),然後你可以添加一個popState()
處理程序,當用戶單擊後退按鈕時,將執行刷新頁面以外的操作。
例如
$(document).on('load',function(){
window.history.replaceState({element: {positionY: 0}},"load",location.pathname);
});
$(mylink).click(function(evt){
// something like: window.history.pushState(evt.target);
});
// this occurs when the user clicks the back button
$(document).on("popstate", function(evt) {
evt.preventDefault(); // prevents page refresh
var state = evt.originalEvent.state;
window.scrollTo(0,state.element.positionY);
}
的可能的複製[保留在AngularJS路由改變滾動位置?](https://stackoverflow.com/questions/14107531/retain-scroll-position-on-route-change -in-angularjs) – azerafati