浏览器禁止后退

在网上搜索了很多禁止掉浏览器后退的方法,大都是说禁用缓存或使用JS跳转。其实浏览器的后退前进按钮我们本身是无法控制的,之所以还有要禁止后退的一些功能需要,主要还是存在提交表单、身份验证等应用场景,避免用户重复提交数据等。下面我从几次层面来说明实现禁止掉浏览器后退的效果。

1.客户端JS跳转

如果单只需要在客户端跳转页面,可以直接使用“location.replace('Test.aspx');”,这样页面跳转不会保留之前页面的历史记录,也没有办法后退到之前页面。但我们一般和服务器端交互都会要提交表单,会存在向服务器再POST数据请求,因此这种只使用客户端JS跳转还是不够的。

2.禁止缓存

禁止缓存的作用在于是客户端总是重新获取服务器请求,而不会加载浏览器本地缓存的副本,这在验证登录等场景是非常重要的,比如像输入的验证码,这个应该只能一次有效而不会被缓存。禁止缓存并不能禁止用户进行后退,但浏览器每次会重新请求获取后退到的页面,不再保留用户原来提交表单输入的数据,相当于重新打开页面,只要每次重新验证这样是没有问题的。如果用户尝试使用浏览器中的缓存版本提交数据,IE中会出现“网页已过期”的提示。禁止缓存的代码如下:

 
  

<</span>meta http-equiv="Pragma" content="no-cache" />
<</span>meta http-equiv="Cache-Control" content="no-cache" />
<</span>meta http-equiv="Expires" content="0" />

//.Net(C#)禁用后台页面浏览器缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");

3.让后退停在当前页面

通过使用禁掉缓存功能,这样用户即使后退或在历史记录中点击进入到原来的页面,这样也没有问题了。当跳转到新页面时,我们还可以使用个办法让用户点后退按钮也停留在新页面,原理是在新页面打开时再自动刷新一次页面,产生一条浏览页面历史记录,这样再后退也就还是停留在新页面了,新跳转的页面增加的代码如下:

 
  
<</span>script type="text/javascript">
var isForward = location.search.indexOf('forward=1') == -1;
if (isForward) {
location
= (location.href + (location.search.indexOf('?') == -1 ? '?' : '&') + 'forward=1');
}
//if ('
<!-- Baidu Button BEGIN -->
更多
<!-- Baidu Button END --> <!--192.168.100.34--> <!-- Baidu Button BEGIN --><script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=1536434"></script><script type="text/javascript" id="bdshell_js"></script><script type="text/javascript"> document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000) </script><!-- Baidu Button END -->
主题推荐
浏览器 服务器 javascript 验证码 数据
猜你在找
<script type="text/javascript"> var searchtitletags = '浏览器禁止后退' + ',' + '浏览器,服务器,javascript,验证码,数据'; searchService({ index: 'blog', query: searchtitletags, from: 10, size: 10, appendTo: '#res-relatived', url: 'recommend', his: 2, client: "blog_cf_enhance", tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>' }); </script>
<script type="text/javascript"> BAIDU_CLB_SLOT_ID = "117306";</script><script type="text/javascript" src="http://cbjs.baidu.com/js/o.js"></script>
<script type="text/javascript"> //new Ad(4, 'ad_cen'); </script>
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
<script type="text/javascript"> var fileName = '31406019'; var commentscount = 0; var islock = false </script><script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
<script type="text/javascript"> new Ad(5, 'ad_bot'); </script>
<script type="text/javascript"> $(function () { if($("#comment_content").length>0) { $("#quick-reply").show(); $("#quick-reply").click(function(){ setEditorFocus(); }); } var d_top = $('#d-top-a'); document.onscroll = function () { var scrTop = (document.body.scrollTop || document.documentElement.scrollTop); if (scrTop > 500) { d_top.show(); } else { d_top.hide(); } } $('#d-top-a').click(function () { scrollTo(0, 0); this.blur(); return false; }); }); </script><style type="text/css"> .tag_list { background: none repeat scroll 0 0 #FFFFFF; border: 1px solid #D7CBC1; color: #000000; font-size: 12px; line-height: 20px; list-style: none outside none; margin: 10px 2% 0 1%; padding: 1px; } .tag_list h5 { background: none repeat scroll 0 0 #E0DBD3; color: #47381C; font-size: 12px; height: 24px; line-height: 24px; padding: 0 5px; margin: 0; } .tag_list h5 a { color: #47381C; } .classify { margin: 10px 0; padding: 4px 12px 8px; } .classify a { margin-right: 20px; white-space: nowrap; } </style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值