0

我正在支持一个电​​子商务应用程序,它几乎可以制作和提交订单。

一位用户发现,如果他们提交订单并快速按下返回,可能会导致错误情况。

我想防止这种情况。当用户单击提交时,我想将某种事件绑定到浏览器的后退按钮,而不是将它们重定向到索引页面。然而,经过大约两个小时的谷歌搜索(包括一些 StackOverflow 主题),我还没有找到任何影响后退按钮行为的明确方法。

我曾短暂尝试使用history.pushState(),但正如 HTML 5 文档所述,这不会导致重定向;它只是改变显示的 URL/状态。

类似地,该history.onpopstate事件似乎没有帮助,因为每当从历史列表中删除一个状态时它就会发生;我正在寻找一个在历史列表被向后遍历时发生的事件。

问题:浏览器的后退按钮是否存在事件,或者至少是否存在防止这种特殊愚蠢的用户技巧的方法?

4

2 回答 2

1

您无法收听浏览器的后退按钮,因为它超出了您的范围(它不是 DOM 的一部分)。

您可以做的是修复前一页,以便它检测您是否使用了后退按钮。

如果没有更多信息,我无法为您提供有关如何实现这一目标的任何提示。

此外,错误条件不一定是坏事。只要确保清楚发生了什么:错误消息应该是有意义的。

于 2013-06-10T16:27:04.080 回答
1

错误的答案...而是听 window.onBeforeUnload 并询问用户是否知道他在做什么。如果不是,则返回 false。这通常通过确认对话来完成

于 2013-06-11T17:06:13.220 回答