有没有办法使用java代码禁用浏览器后退按钮

时间:2014-09-02 13:21:33

标签: java javascript

有没有办法使用Java代码禁用浏览器后退按钮? Javascript在所有浏览器中都不可靠。

3 个答案:

答案 0 :(得分:6)

你们两个假设都是错误的。

1)没有人可以禁用浏览器后退按钮(当然不包括供应商 :)。

2) Java 在服务器端播放。 Javascript 在客户端播放。

您可能希望浏览器onunload功能提示用户。

@Derek根据我的意思做了一个演示:http://jsfiddle.net/DerekL/LZCj7/show/

答案 1 :(得分:1)

简单回答:是(对于某些禁用定义)。

您可以完全自由地在您的网站上运用任何形式的导航控件,并创建一系列一次性的网址,必须按特定顺序访问,从而使后退按钮无效。 (您甚至可以重新访问这些网址以返回预定义的主页)

常见的误解:

  • 您可以使用javascript控制客户端上的浏览器。 - 你不能,没有两种方法,javascript不受你的控制,可以被一个7岁的人修改(这是基于经验的保守估计,而不是期望。),
  • 防止向后导航总是hacky和/或坏。某些事情应该真正尝试做得更好 - 曾经做过在线测验或记忆游戏吗?

解决方案: 请注意,这不会禁用该按钮,而是会使对“之前”网址的请求无效

在每个请求中包含一个密钥(对于每个后续请求都会更改),并且与HttpSession相关联,然后可以将其包含在表单提交中 - 请记住,知道他们正在做什么的人仍然可以提取此并使用它向后移动,因此确保您的密钥只能用于整个站点(允许的那些)的特定页面子集也是值得的。很多简单的方法,我个人喜欢素数和哈希。

还要注意,如果您没有考虑所需的行为,使用此功能刷新页面可能会让您感到悲伤。这样做,并实现它。

答案 2 :(得分:-1)

您不应该尝试禁用后退按钮,因为您的网站不应超出视口的范围,但您应该尝试更改您的方法。我非常确定你想要实现的目标可以用另一种方式完成!为什么不告诉我们更多相关信息?

JavaScript被设计为对DOM元素起作用,不幸的是,后退按钮不是它们的一部分。此外,与您的想法不同,JavaScript是可靠的,虽然结果可能会因浏览器的不同而有所不同,但有些库可以解决这个问题。

对于Java,您可能会考虑applet ......但它仍然不是正确的方法,而且就跨浏览器兼容性而言,情况比使用JavaScript更糟糕。

因此,简而言之,是的,可能会有一些变通方法可以防止使用后退按钮,但是不,你应该尝试这样做,因为它被认为是一种不好的做法。

修改

这是一段JavaScript(不是Java)ode,可以阻止上一页加载:

<script>
function preventBackButton(){window.history.forward();}
setTimeout("preventBackButton()", 0);
window.onunload=function(){null};
</script>

但请记住,这不是一个好习惯。你不应该使用它。为什么不告诉我们您想要达到的目标,以便我们能够以正确的方式帮助您实现目标?