首页 > 解决方案 > 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 不会触发。

标签: javascriptangulargoogle-chrome

解决方案


推荐阅读