如何在 Rails 上使用 JavaScript、Ruby 禁用浏览器后退按钮?

How can I disable the browser back button with JavaScript, Ruby on Rails?

如何在我们的应用程序中导航时禁用浏览器后退按钮。我已经尝试使用以下代码,它只防止返回选项不隐藏或禁用后退导航图标。

<script type = "text/javascript" >
      history.pushState(null,null);
      window.addEventListener('popstate', function() {
          history.pushState(null,null); });
</script>

<script type="text/javascript">

  window.history.forward();

</script>

我想知道至少能够屏蔽浏览器后退导航icon/button(就像在浏览器中打开新的点击导航按钮显示为屏蔽模式)。

你不能或更好:你不应该。

如果可以的话,它是一个不安全且不可靠的浏览器。

最佳做法是不要弄乱后退按钮,否则用户体验会受到影响。

编辑:

您可以尝试通过在服务器端操纵会话变量来吸引用户。在session中保留一个变量,如page_number,然后在第一页将其设置为0

在所有后续页面上检查 page_number 并在页码错误时强制服务器端 redirect

例如,在第 4 页上,您可以这样做:

if (session.page_number === 3)
{
    // ok, user comes from previous page
    session.page_number = 4;
} else {
    // server-side redirect back to proper page
    // which happens to be "session.page_number"
}

您将该代码放在每个页面上(设置 higher/lower 页码),单击后退按钮将导致重定向到您之前所在的同一页面。

显然,这是一种非常糟糕的做法。漏斗应该只在非常有限的情况下使用,例如购物车和信用卡场景。漏斗使网页表现得更像 ATM。航空公司和亚马逊使用渠道。

您可以在互联网 rails 上找到有关 ruby 服务器端重定向的确切详细信息。