javascript - 存储 url 的历史列表并使用 jquery 访问上一个和下一个 url

标签 javascript jquery angularjs

我正在使用 angularjs 和 jquery。我想手动存储 url 的历史列表,以便我可以根据需要访问 url,并相应地向前和向后移动。我已经使用了 document.referrerwindow.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 文档,看看它是否满足你的需要。

angularjs $route doc

angularjs tutorial that mentions how to use $route

关于javascript - 存储 url 的历史列表并使用 jquery 访问上一个和下一个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24217528/

相关文章:

javascript - CSS/JS 删除(自动)换行符/文本换行前的空格

javascript - mongodb 中 id 的重复键

javascript - 如何使用 jQuery 捕获不同父级下具有相同类的 html 元素?

javascript - 使用 JS 或 jQuery 单击 Gmail 的按钮

javascript - 将 Div 替换为内容

jquery - 格式化 jquery timepicker 以加载到 django TimeField

jquery - 我如何修改这个 jQuery XML 解析器?

javascript - Angular,ui-router "binding"到 url,同样无需刷新

javascript - angularjs随 secret 码生成器至少一个大写小写数字和特殊字符

javascript - 从另一个 Controller Angular Js 调用函数