繁体   English   中英

有什么方法可以覆盖后退按钮吗?

[英]Is there any way to override back button?

我想覆盖浏览器中的后退按钮,例如,如果用户从A.aspx转到B.aspx,则当他尝试从B.aspx返回时,应该转到Home.aspx而不是A.aspx。

有什么办法可以做到这一点? 使用ASP,C#,JavaScript还是jQuery都没关系。

您可以使用JQuery捕获浏览器返回(popstate)事件。

$(document).ready(function () {
  if (window.history && window.history.pushState) {
    window.history.pushState('forward', null, null);
    $(window).on('popstate', function () {
      window.location.href = 'http://stackoverflow.com';
    });
  }
});

跟踪用户的ASP.NET会话中的最后一页。 只要在C#中加载aspx页面,就可以在会话中设置“最后一页”来完成此操作。 加载ASP.NET A.aspx时,请在设置会话之前检查会话中的最后一页。 如果是B,请重定向到家。

在ASP.NET Web窗体中使用会话状态的指南: https : //msdn.microsoft.com/zh-cn/library/ms178581.aspx

我没有找到阻止它的解决方案,但是您可以检测到它,并将其发送回Java来源。

将此放置在您不希望他们回来的页面中

<script type="text/javascript">

     function preventBack() { window.history.forward(); }

     setTimeout("preventBack()", 0);

     window.onunload = function () { null };

</script> 

像某些MV *框架一样,(在单页应用程序中)它们使用location.pushState用于== IE10浏览器,并使用window.onhashchange来监听其他哈希变化。

因此,您可以通过侦听哈希更改来侦听“后退”按钮。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM