有没有办法使用Java代码禁用浏览器后退按钮? Javascript在所有浏览器中都不可靠。
答案 0 :(得分:6)
你们两个假设都是错误的。
1)没有人可以禁用浏览器后退按钮(当然不包括供应商 :)。
2) Java 在服务器端播放。 Javascript 在客户端播放。
您可能希望浏览器onunload
功能提示用户。
@Derek根据我的意思做了一个演示:http://jsfiddle.net/DerekL/LZCj7/show/
答案 1 :(得分:1)
简单回答:是(对于某些禁用定义)。
您可以完全自由地在您的网站上运用任何形式的导航控件,并创建一系列一次性的网址,必须按特定顺序访问,从而使后退按钮无效。 (您甚至可以重新访问这些网址以返回预定义的主页)
常见的误解:
解决方案: 请注意,这不会禁用该按钮,而是会使对“之前”网址的请求无效
在每个请求中包含一个密钥(对于每个后续请求都会更改),并且与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>
但请记住,这不是一个好习惯。你不应该使用它。为什么不告诉我们您想要达到的目标,以便我们能够以正确的方式帮助您实现目标?