使用 javascript 历史来丢弃同一页面上的连续点击

use javascript history to discard consecutive clicks on the same page

所以,我不是前端人员,请多多包涵..

我有一些页面,您在其中多次提交表单(目标和当前 url 是相同的),然后您不想返回上一页。 处理提交的方式是发布表单,然后重定向用户,以便重新加载不会重新提交(POST)表单 - 我不确定这是否是实现此目标的最佳方法..

问题是这只会将用户带回到同一页面,因为如果。 A页面的表单被提交了两次,历史记录将有:

  1. A 页(当前)
  2. 页面 A(提交,产生重定向)
  3. 页面 A(之前加载)
  4. 页面 A(提交,产生重定向)
  5. 页面 A(原始加载)
  6. 上一页

现在我想要后退按钮将用户带回上一页 (#6),为了做到这一点,我猜我需要在每个页面上引入代码(使用表单至少)其中:

  1. 检查引用者是否与当前引用者具有相同的url,如果是,则history.popState
  2. 在提交任何表单时,检查目标和当前 url 是否相同 history.popState

这是一个合理的策略,还是有更好的方法来实现它?

Html

<a href="index.html" 
onclick="handleClick(this);">Click</a>

Javascript

 const handleClick = (e) =>{
       locaiton.replace(e.href);
       return false;
    }

这似乎不可能,所以我采取了另一条路线,我避免使用后退按钮,而是根据上下文提供指向上一页的链接。