Javascript 存储url的历史记录列表,并使用jquery访问上一个和下一个url
我正在使用angularjs和jquery。我想手动存储url的历史记录列表,这样我就可以根据需要访问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的默认路由,捕获
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吗?
没有,但请告诉我如何尝试。
看看这是否有帮助:如果您能为我提供一些这方面的教程,那就太好了。