关于防止后退这是一个老生常谈的问题,同时防止后退这个问题在程序的开发中又是不可避免的,经常需要在各种各样的场景中防止用户的后退操作给程序带来的影响。一个典型的案例场景就是一个给产品投票的页面,如果用户在投票之后转到结果页面的时候想回到前一张页面,这时候在前一张页面中保留了以前的投票信息,用户在稍作修改的时候又开始投票,这样的结果就不用说了。
关于防止后退网上有人主张用:
location.replace() 方法:
// 防止后退的情况
<a href="Javascript:location.replace('http://iteye.com')">javaeye<a>
// 通过replace防止后退的代码
<a href="#" οnclick="location.replace('http://iteye.com'')">javaeye<a>
replace () 方法,该方法通过指定URL 替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL, 防止后退。
在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload() 或者是 history.go(0) 来做。。因为这种做法就像是客户端点F5刷新页面,所以页面的method="post"的时候,会出现网页过期的提示。那是因为Session的安全保护机制。
// 防止后退的情况根据以前的应用程序,一直认为防止后退最简单的方法是在第一张页面中加上如下的脚本代码
<SCRIPT language="JavaScript">
// 通过简单脚本防止用户后退
javascript:window.history.forward(1);
</SCRIPT>
这个的原理是这样的,当用户点击第一张网页提交表单转到第二张网页后,在第二张网页点击后退的时候回到了第一张页面,第一张页面中的脚本脚本又会让用户马上回到第二张页面,这样就可以简单的做到防止后退。