Javascript 存储url的历史记录列表,并使用jquery访问上一个和下一个url

Javascript 存储url的历史记录列表,并使用jquery访问上一个和下一个url,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我正在使用angularjs和jquery。我想手动存储url的历史记录列表,这样我就可以根据需要访问url,并相应地前后移动。我已经使用了document.referer和window.history.back(),但我无法获取所需的url 所以,请告诉我一种方法,这样我可以手动获取它,并将其存储在数组或其他东西中 提前感谢。$route,$location角度服务是您的朋友 $location.absUrl() $routeChangeSuccess事件如果使用angular的默认路由,捕获

我正在使用angularjs和jquery。我想手动存储url的历史记录列表,这样我就可以根据需要访问url,并相应地前后移动。我已经使用了
document.referer
window.history.back()
,但我无法获取所需的url

所以,请告诉我一种方法,这样我可以手动获取它,并将其存储在数组或其他东西中


提前感谢。

$route,$location角度服务是您的朋友

$location.absUrl()


$routeChangeSuccess事件如果使用angular的默认路由,捕获路由更改的好地方

您无法直接从
窗口访问浏览器历史记录列表。历史记录
对象

如果你真的需要这样做,它可能是棘手和丑陋的

对于使用url哈希切换应用程序状态的sinlge页面应用程序,您可以侦听
hashchange
事件并将哈希推送到数组中:

var history = [];
$(window).on('hashchange', function() {
    history.push(location.hash);
});
对于多页应用程序,您可以收听
onunload
事件,并将当前url写入cookie。您必须将代码添加到您拥有的每个页面;非常不公平

如果用户导航到您不拥有的页面,则您无法记录该部分历史记录

您在问题中提到您使用angularjs。通常,当您使用这些mvx框架时,您不会直接处理浏览器历史记录,而是处理应用程序路由。 也许你应该看看angularjs$route文档,看看它是否满足你的需要


我的应用程序以这种方式记录所有路由

var angularAdmin = angular.module('app', ['ui.bootstrap','ngRoute', 'ngResource']);

angularAdmin.run(function ($rootScope, $location) {
    $rootScope.history = [];
    $rootScope.$on('$routeChangeSuccess', function() {
    $rootScope.history.push($location.$$path);
});

您尝试过javascript cookies吗?
没有,但请告诉我如何尝试。
看看这是否有帮助:
如果您能为我提供一些这方面的教程,那就太好了。