更改后退按钮导致的位置
问题描述:
我正在开发一个Web应用程序,并希望让浏览器中的后退按钮更像应用程序。更改后退按钮导致的位置
用户经过这些步骤来发布一条消息: 列表的所有邮件 - >读一个消息 - >写应答 - >变回邮件答复
后,如果用户再点击返回按钮,他将回到页面是他写了回复。首选的行动是回到所有消息的列表。
我试过使用HTML5 History API在发布后删除“写回复”和“读取一条消息”的历史记录,但似乎无法做到这一点。
是否有任何其他方式使其表现得像我想要的,还是应该让它保持原样?我知道你不应该惹后退按钮,但我真的认为这会使它更合乎逻辑。
答
你可以尝试这样做:
用户写的回复后,您可以执行这个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);
- 记住代码@点1将改变您的网址地址栏,所以如果你在查询字符串中使用带有一些片段或其他信息的URL,你必须处理它们。
- 对于代码@point2,如果您处于单个页面的Web应用程序中,则必须在完成此操作后删除该侦听器。
但是,这是一个可能的解决方案,但不知道环境,我不知道是否可以满足您的要求。 希望这可以帮助!
+0
这工作得很好!谢谢! – Thomas
+0
很高兴满足您的需求! – Pierfrancesco
阅读本文http://stackoverflow.com/questions/31528432/how-do-i-use-window-history-in-javascript让我们知道这是否解决了您的问题。 – Rahul