作为电子商务网站的最后一页,我被要求阻止用户返回上一个付款页面,以便他们无法再次订购同一产品。
网站是使用Angular 7设计的
上一页从报价创建订单,然后转到确认页面。
我已经在下面的代码中实现了一个在大多数情况下都可以使用的解决方案-在IE,Firefox中,一旦我通过以下路线导航到确认页面,便无法使用后退按钮或快捷方式返回上一页
但是:在Chrome中,如果您不以任何方式与页面进行交互,则可以单击“后退”按钮进行导航。如果您与页面互动,例如单击它,将任何详细信息添加到文本框等,然后阻止您返回。
preventBackButton() {
window.history.pushState(null, null, window.location.href);
window.onpopstate = () => {
window.history.pushState(null, null, window.location.href);
};
}
问题:在Chrome浏览器上单击“后退”按钮时,onpopstate不会触发。