我正在开发一个web应用程序,想让浏览器中的后退按钮更像应用程序。
用户通过以下步骤发布消息:列出所有消息->阅读一条消息->写回复->回复后返回消息
如果用户点击返回按钮,他将返回到他写回复的页面。首选的操作是返回所有消息的列表。
我曾尝试使用HTML5历史API来删除发布后"写回复"one_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应用程序中,则必须在完成此操作后删除侦听器
然而,这是一个可能的解决方案,但在不了解环境的情况下,我不知道是否能满足您的要求。希望这能有所帮助!