我想覆盖浏览器中的后退按钮,例如,如果用户从A.aspx到B.aspx,当他试图从B.aspx返回时,它应该转到Home.aspx而不是A. ASPX。
有没有办法实现这一目标?它是否使用ASP,C#,JavaScript或jQuery无关紧要。
答案 0 :(得分:3)
您可以使用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';
});
}
});
答案 1 :(得分:1)
跟踪用户ASP.NET会话中的最后一页。这可以通过在加载aspx页面时在会话中设置“最后一页”来在C#中完成。加载ASP.NET A.aspx时,请在设置之前检查会话中的最后一页。如果是B,则重定向到家。
在ASP.NET Web窗体中使用会话状态的指南:https://msdn.microsoft.com/en-us/library/ms178581.aspx
答案 2 :(得分:1)
我没有找到防止它的解决方案,但你可以检测到它并将它发回到你来自java的地方。
将此信息放在您不希望他们回来的页面中
<script type="text/javascript">
function preventBack() { window.history.forward(); }
setTimeout("preventBack()", 0);
window.onunload = function () { null };
</script>
答案 3 :(得分:0)
与某些MV *框架一样,(在单页应用中)他们使用location.pushState
用于&gt; = IE10 浏览器,而window.onhashchange
用于其他人用于监听哈希更改
所以你可以通过监听哈希变化来监听后退按钮。