更改后退按钮的指向位置

Changing where the back button leads to

本文关键字:位置 按钮      更新时间:2023-09-26

我正在开发一个web应用程序,想让浏览器中的后退按钮更像应用程序。

用户通过以下步骤发布消息:列出所有消息->阅读一条消息->写回复->回复后返回消息

如果用户点击返回按钮,他将返回到他写回复的页面。首选的操作是返回所有消息的列表。

我曾尝试使用HTML5历史API来删除发布后"写回复"answers"读一条消息"的历史记录,但似乎不可能做到这一点。

有没有其他方法让它表现得像我想要的那样,或者我应该让它保持原样?我知道你不应该乱按后退按钮,但我真的认为这会让它更合乎逻辑。

您可以尝试这样做:

在用户写下回复后,你可以执行这个js

// 1) push a fake state in the history
  history.pushState({ foo: "test" }, "test", "test.html");
// 2) add a listener when the user press the back button
  window.addEventListener('popstate', function(event) {
      //redirect user where you want
      window.location.href = '...';
  }, false);
  • 请记住,代码@point1会更改地址栏中的URL,因此,如果您使用的URL与查询字符串中的一些片段或其他信息一起使用,则必须处理它们
  • 对于代码@point2,如果您在单页web应用程序中,则必须在完成此操作后删除侦听器

然而,这是一个可能的解决方案,但在不了解环境的情况下,我不知道是否能满足您的要求。希望这能有所帮助!