javascript - Chrome:禁用用户在 Angular 中使用导航到上一页的能力
问题描述
作为电子商务网站的最后一页,我被要求阻止用户返回上一个付款页面,这样他们就不能再次订购相同的产品。
网站是使用 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 上的后退按钮时,window.onpopstate 不会触发。
解决方案
推荐阅读
- php - 在 codeigniter 中使用第二个数据库执行 SQL 查询
- python-3.x - ValueError:错误的文件描述符
- regex - 如何在 gnome-terminal 中使用 sed 命令实现语法高亮显示?
- sql - sql查询fifo库存
- bash - 使用 DEBUG 陷阱时 INT 陷阱不起作用
- c - C程序用新行反转字符串
- c++builder - 如何恢复项目文件 C++ Builder 10.3
- javascript - 另一个函数运行成功javascript后无法赋值
- pandas - Modin read_csv 问题
- node.js - 在 Kubernetes (GCP) 上无法访问 NodeJS 服务