Catch back button - ASP
本文关键字:ASP button back Catch | 更新日期: 2023-09-27 18:14:40
我想重定向客户端到自定义控制器当他点击返回浏览器按钮。
你知道任何明确的方法来捕获返回按钮事件和强制调用服务器吗?
最好,谢谢你
返回按钮的问题在SO上得到了很好的回答。快速搜索会发现很多额外的信息。下面是一个小总结。
你有几个策略可以选择。
1 -如果您正在开发SPA(或不是),您可能会发现使用历史api很有用。https://developer.mozilla.org/en-US/docs/Web/API/History
https://developer.mozilla.org/en-US/docs/Web/API/History_API你会发现很多关于历史api的SO。在返回按钮
上保留动态更改的HTML基本上,通过为popstate事件添加一个监听器,每当活动的历史条目发生变化时触发:(在jQuery)
$(document).ready(function () {
$(window).on('popstate' , function (event) {
console.log('popstate');
console.log(event);
console.log(event.originalEvent);
});
};
http://caniuse.com/搜索历史=
2 -为pageshow事件添加一个侦听器,将在页面加载完成时触发,当会话历史条目用于导航时,所以基本上是转发&返回按钮。https://developer.mozilla.org/en-US/docs/Web/Events/pageshow
$(window).on('pageshow' , function (event) {
console.log('pageshow');
console.log(event);
console.log(event.originalEvent);
});
http://caniuse.com/搜索= pageshow
3 -使用window.location.hash = 'pageHashValue'为url添加hashvalues。监听hashchange事件,然后根据需要根据#值进行操作。https://developer.mozilla.org/en-US/docs/Web/Events/hashchange
这是单页应用程序中常见的方法。
$(window).on('hashchange' , function (event) {
console.log('hashchange');
console.log(event);
console.log(event.originalEvent);
console.log(window.location.hash);
});
http://caniuse.com/搜索= hashchange
最后需要注意的是,作为一个开发者,你无疑会讨厌浏览器的后退按钮(像我一样),而我们的用户却喜欢它。如果你改变了后退按钮的预期行为,你的用户体验也会受到负面影响。最好的策略是使用这些事件来维护后退按钮的预期行为,而不是试图更改它。