更改后退按钮指向的位置
Changing where the back button leads to
我正在开发一个网络应用程序,并希望使浏览器中的后退按钮更像应用程序。
用户通过这些步骤 post 一条消息:
列出所有消息-> 阅读一条消息-> 写回复-> 回复后返回消息
如果用户随后单击后退按钮,他将返回到他写回复的页面。首选操作是返回到所有消息的列表。
我尝试使用 HTML5 历史记录 API 删除 "write reply" 和 "read one message" 在 posting 之后的历史记录,但它没有似乎不可能做到这一点。
是否有任何其他方法可以让它表现得像我想要的那样,还是我应该保持原样?我知道你不应该乱用后退按钮,但我真的认为这会让它更合乎逻辑。
你可以尝试这样做:
用户回复后可以执行这个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,如果您在单页网络应用程序中,则必须在完成此操作后删除侦听器。
但是这是一个可能的解决方案,但是在不知道环境的情况下我不知道是否可以满足您的要求。
希望对您有所帮助!
我正在开发一个网络应用程序,并希望使浏览器中的后退按钮更像应用程序。
用户通过这些步骤 post 一条消息: 列出所有消息-> 阅读一条消息-> 写回复-> 回复后返回消息
如果用户随后单击后退按钮,他将返回到他写回复的页面。首选操作是返回到所有消息的列表。
我尝试使用 HTML5 历史记录 API 删除 "write reply" 和 "read one message" 在 posting 之后的历史记录,但它没有似乎不可能做到这一点。
是否有任何其他方法可以让它表现得像我想要的那样,还是我应该保持原样?我知道你不应该乱用后退按钮,但我真的认为这会让它更合乎逻辑。
你可以尝试这样做:
用户回复后可以执行这个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,如果您在单页网络应用程序中,则必须在完成此操作后删除侦听器。
但是这是一个可能的解决方案,但是在不知道环境的情况下我不知道是否可以满足您的要求。 希望对您有所帮助!