在 MVC 应用程序中使用 javascript / jquery 禁用浏览器返回到外部页面的操作

Aka*_*tel 3 javascript model-view-controller jquery

我知道这将是一个重复的问题,但我在沮丧了三天后才提出这个问题。

在外部支付网站上完成付款后,我在我的网站页面上借贷。在某些情况下,用户单击后退按钮,并且因此被收取两次或多次费用,因此我想禁用对该页面的后退操作。

我已经在堆栈溢出上尝试了许多可用的答案。以下是我尝试过的最常见的解决方案之一

<script type="text/javascript">
    $(document).ready(function(){
        history.pushState(null, null, location.href)
        history.back();
        history.forward();
        window.onpopstate = function(){
            history.go(1);
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

引用自 使用 jquery 禁用浏览器后退操作

另外, https://support.google.com/chrome/thread/8721521?hl=en

如果有人能帮助引导我走向正确的方向,那就太好了。

附加信息:

  • Chrome 版本 - 100.0.4896.75
  • 边缘版本 - 100.0.1185.36

小智 6

您想要实现的目标称为“后退按钮劫持”。Chrome 似乎已经为您当前使用的黑客行为添加了修复程序。通常,这被恶意网站使用。您可以在此处阅读更多信息: https: //www.pcmag.com/news/chrome-browser-to-stop-websites-abusing-the-back-button。换句话说,如果没有用户交互,网站不应阻止用户使用后退按钮。


我建议您与您的支付提供商讨论这个问题。他们绝不能为同一个订单支付两次相同的款项。

您使用哪个支付服务提供商?