8

我有一个 Web 应用程序,应该在其中自定义浏览器的后退按钮功能。就像,每当我们点击浏览器的后退按钮时,它应该把我们带到登录页面(登录页面),它应该显示错误消息说'会话已过期。请重新登录'。

我经历了很多帖子,甚至在堆栈溢出中,我也看到了很少的帖子。但没有什么对我有用。我使用的 java 脚本方法作为临时解决方法。基本上这个 JavaScript 永远不允许我们返回。相反,它将使我们保持在同一页面上。我用过的 JavaScript <script>history.go(1)</script>

请帮我自定义浏览器后退按钮的功能。任何建议都会对我很有帮助。

4

3 回答 3

11

简短的回答:你不能
再多一点:你甚至不应该尝试。

但如果你坚持:彻底检查“禁用后退按钮”。(从 2000 年开始,但由于它是 ASP,我想对你仍然有效 :)

较新的点网:限制用户在注销后返回上一页

忽略旧的浏览器不支持 location.replace - IE3.2 不再被认为是旧的,而是古老的。

于 2011-03-21T08:58:27.643 回答
2

为此 - 您需要一个自定义解决方案,并且禁用后退按钮无济于事......

通常你不应该尝试改变后退按钮的行为。但由于这是要求,我建议如下:

方法一:

这需要创建一个导航框架,您可以在其中知道哪个是流中的当前页面......这只有在您调用页面的顺序时才有可能(如向导)

方法二:

具体到您的情况:您可以使用 jquery/javascript 来识别是否单击了后退按钮。如果是,那么您可以对服务器进行 ajax 调用以终止会话,然后将用户重定向到登录页面。

于 2011-03-21T09:05:24.200 回答
0

您可以使用以下方式以编程方式操作浏览器历史记录:window.history.back(); window.history.forward(); window.history.go(2); 等等

在 Chrome 等支持 HTML5 的现代浏览器中,您还可以执行更高级的操作,包括使用 history.pushState() 和 history.replaceState() 方法完全覆盖后退按钮功能。(https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history)

您也可以使用 javascript + ajax 调用来专门对后退按钮事件做出反应,但这在某些浏览器上也不起作用。你问的不是网络的原生部分,所以无论你最终决定使用什么,它都不会很容易或得到广泛支持。

于 2011-03-21T20:44:46.677 回答