Catch back button - ASP

本文关键字:ASP button back Catch | 更新日期: 2023-09-27 18:14:40

我想重定向客户端到自定义控制器当他点击返回浏览器按钮。

你知道任何明确的方法来捕获返回按钮事件和强制调用服务器吗?

最好,谢谢你

Catch back button - ASP

返回按钮的问题在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

最后需要注意的是,作为一个开发者,你无疑会讨厌浏览器的后退按钮(像我一样),而我们的用户却喜欢它。如果你改变了后退按钮的预期行为,你的用户体验也会受到负面影响。最好的策略是使用这些事件来维护后退按钮的预期行为,而不是试图更改它。