更改后退按钮的位置

时间:2016-05-12 12:44:29

标签: javascript html5 html5-history

我正在开发一个网络应用程序,并希望在浏览器中使后退按钮更像应用程序。

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

如果用户然后单击后退按钮,他将在回复时写回页面。首选的操作是返回所有消息列表。

我已尝试使用HTML5历史记录API删除"写回复"的历史记录。并且"阅读一条消息"发布后,但似乎无法做到这一点。

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

1 个答案:

答案 0 :(得分:1)

你可以尝试这样做:

用户撰写回复后,您可以执行此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将在地址栏中更改您的网址,因此,如果您在查询字符串中使用带有某些片段或其他信息的网址,则必须处理它们。
  • 对于代码@ point2,如果您在单页Web应用程序中,则必须在完成此操作后删除侦听器。

然而,这是一个可能的解决方案,但我不知道环境,我不知道是否适合您的要求。 希望这可以提供帮助!