我正在使用 angularjs 和 jquery。我想手动存储 url 的历史列表,以便我可以根据需要访问 url,并相应地向前和向后移动。我已经使用了 document.referrer
和 window.history.back()
但我无法获取我需要的 url。
所以请告诉我一种方法,以便我可以手动获取它并将其存储在数组或其他东西中。
提前致谢。
最佳答案
您无法直接从 window.history
对象访问浏览器历史列表。
如果您真的需要这样做,它可能会很棘手且丑陋。
对于使用url hash切换应用状态的单页应用,可以监听hashchange
事件并将hash压入数组:
var history = [];
$(window).on('hashchange', function() {
history.push(location.hash);
});
对于多页应用,也许你可以监听onunload
事件,然后将当前的url写入cookie。您必须将代码添加到您拥有的每个页面;非常不优雅。
如果用户导航到不属于您的页面,那么您将无法记录那部分历史记录。
您在问题中提到您使用 angularjs。通常,当您使用这些 mvx 框架时,您不会直接处理浏览器历史记录,而是处理应用程序路由。 也许你应该看看 angularjs $route 文档,看看它是否满足你的需要。
关于javascript - 存储 url 的历史列表并使用 jquery 访问上一个和下一个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217528/