如何在 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 服务器端重定向的确切详细信息。
如何在我们的应用程序中导航时禁用浏览器后退按钮。我已经尝试使用以下代码,它只防止返回选项不隐藏或禁用后退导航图标。
<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 服务器端重定向的确切详细信息。