在IE中如何让用户按“后退”键失效.

一. 我们也可以用客户端代码使浏览器不再缓存Web页面:          
     
    <html     >          
    <head     >          
    <meta     http-equiv=     "Expires     "     CONTENT=     "0     "     >          
    <meta     http-equiv=     "Cache-Control     "     CONTENT=     "no-cache     "     >          
    <meta     http-equiv=     "Pragma     "     CONTENT=     "no-cache     "     >          
    </head     >          
     
         如果使用上面的方法强制浏览器不再缓存Web页面,必须注意以下几点:          
  只有在使用安全连接时“Pragma:     no-cache”才防止浏览器缓存页面。对于不受安全保护的页面,“Pragma:     no-cache”      
  被视为与“Expires:     -1”相同,此时浏览器仍旧缓存页面,但把页面标记为立即过期。          
  在IE     4或5中,“Cache-Control”META     HTTP-EQUIV标记将被忽略,不起作用。          
         在实际应用中我们可以加上所有这些代码。然而,由于这种方法不能适用于所有的浏览器,所以是不推荐使用的。但      
  如果是在Intranet环境下,管理员可以控制用户使用哪种浏览器,我想还是有人会使用这种方法。           
      
  二、其他方法          
         接下来我们要讨论的方法以后退按钮本身为中心,而不是浏览器缓存。这儿有一篇文章Rewiring     the     Back     Button很      
  值得参考。不过我注意到,如果使用这种方法,虽然用户点击一下后退按钮时他不会看到以前输入数据的页面,但只要点      
  击两次就可以,这可不是我们希望的效果,因为很多时候,固执的用户总是能够找到绕过预防措施的办法。          
         另外一种禁用后退按钮的办法是用客户端JavaScript打开一个没有工具条的窗口,这使得用户很难返回前一页面,但      
  不是不可能。一种更安全但相当恼人的方法是,当表单提交时打开一个新的窗口,与此同时关闭表单所在的窗口。但我觉      
  得这种方法不值得认真考虑,因为我们总不能让用户每提交一个表单就打开一个新窗口。          
         那么,在那个我们不想让用户返回的页面是否也可以加入JavaScript代码呢?在这个页面中加入的JavaScript代码可      
  用来产生点击前进按钮的效果,这样也就抵消了用户点击后退按钮所产生的动作。用于实现该功能的JavaScript代码如下      
  所示:          
     
    <script     language=     "JavaScript     "     >          
    <!--          
  javascript:window.history.forward(1);          
  //--     >          
    </script     >          
     
         同样地,这种方法虽然有效,但距离“最好的方法”还差得很远。后来我又看到有人建议用location.replace从一个      
  页面转到另一个页面。这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后      
  退按钮永远不会变为可用。我想这可能正是许多人所寻求的方法,但这种方法仍旧不是任何情况下的最好方法。使用这种      
  方法的实例如下所示:          
     
    <A     HREF=     "PageName.htm     "     οnclick=     "javascript:location.replace(this.href);          
     
  event.returnValue=false;         "     >          
     
  禁止后退到本页面的链接     </A     >          
         禁止后退到本页面的链接!          
         这种方法的缺点在于:简单地运用Response.Redirect将不再有效,这是因为每次用户从一个页面转到另一个页面,      
  我们都必须用客户端代码清除location.history。另外还要注意,这种方法清除的是最后一个访问历史记录,而不是全部      
  的访问记录。          
         点击上面的链接,你将打开一个简单的HTML页面。再点击后退按钮,你可以看到这时打开的不是本页面,而是本页面      
  之前的页面!(当然,你必须在浏览器中启用了客户端JavaScript代码。)          
         经过一番仔细的寻寻觅觅之后,我发现仍旧无法找出真正能够完全禁用浏览器后退按钮的办法。所有这里介绍的方法      
  都能够在不同程度上、以不同的方式禁止用户返回前一页面,但它们都有各自的局限。由于不存在能够完全禁用后退按钮      
  的方法,所以最好的方案应该是:混合运用客户端脚本和服务器端脚本。          
     
  ---------------------------------------------------------------       
      
  "后退",不过不管哪个键,你都可以参见以下的方法实现:      
  用js,代码如下     <body     οnkeydοwn=     "if(event.keyCode==8)event.returnValue=false     "     >上面的8为backspace的键码      
     
  你可以用下面的方法获得所需键码(键码显示在状态栏中)      
    <body     οnkeydοwn=     "window.status=event.keyCode     "     >

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值