由window.history.back()引发的问题


 由window.history.back()引发的问题

编写人:CC阿爸

 

2015-1-30

今天在这里,我想与大家一起分享由windows.history.back()引发的问题,笔者在实际开发当中遇到了多种不同的情况,在此做个小结,以供参考。有兴趣的同学,可以一同探讨与学习一下,否则就略过吧。

 

1.由于刚开始进行的web开发,很多时候使用的为html控件,因此处理起来相当简单

如以下两种方法:

 window.history.back();  (不会刷新)

window.location.href=’上一个页面.aspx’  (会刷新)

< input  type =button  value =刷新  onclick ="window.location.reload()" >
< input  type =button  value =前进  onclick ="window.history.go(1)" >
< input  type =button  value =后退  onclick ="window.history.go(-1)" >
< input  type =button  value =前进  onclick ="window.history.forward()" >
< input  type =button  value =后退  onclick ="window.history.back()" > 
后退+刷新
< input  type =button  value =后退  onclick ="window.history.go(-1);window.location.reload()" >

 


2.但转到webcontrol时,发现这些就不能通用了。经过测试发现要采用如下操作(留意红色部分内容)

 <asp:Button ID="btnBack" Width="80px" runat="server" Text="Back"  OnClientClick=" window.history.back();return false; ">(不会刷新)


  < asp:Button  ID ="btnBack"  Width ="80px"  runat ="server"  Text ="Back"   OnClientClick ="window.location='P_PRQuoList.aspx';return false;" > (会刷新)

< asp:Button  ID ="btnBack"  Width ="80px"  runat ="server"  Text ="Back"   OnClientClick ="window.location.href=document.referrer; return false;" >
                     </ asp:Button >(会刷新)

 

3.C# Web程序中,如为页面按钮写返回上一页代码

 this.RegisterClientScriptBlock("E","<script language=javascript>history.go(-2);</script>");

 

其中,history.go(-2),要写为-2,因在按钮事件触发前,已刷新一次页面,所以应是-2

Response.Write("<script language=javascript>history.go(-2);</script>");

此处也要写为“-2”。跟直接写脚本的有所不同。history.back()是会上一页
i=1
history.go(i)
去指定的某页


4.另:有时候,我们返回时,想保留上次输入的内容,又如何处理,一般情况下返回后,内容就被清空了。

网上同学讲.history.back(-1);是不能去掉的.. window.location.href='页面.aspx'; 

以下为通用的解决方案:

 <HTML><HEAD>

< META  content =history  name =save >
< STYLE >
.saveHistory 
{ behavior: url(#default#savehistory);}
</ STYLE >

< META  content ="MSHTML 6.00.2800.1528"  name =GENERATOR ></ HEAD >
< BODY >加了历史保留功能: < BR >< TEXTAREA  class =saveHistory ></ TEXTAREA >< BR >没有加的: < BR >< TEXTAREA ></ TEXTAREA >
< P >< INPUT  onclick ='javascript:location.href="http://www.google.com"'  type =button  value =点击进入,再按后退键试试? >  </ P ></ BODY ></ HTML >

 

 

以下第二部分为我在程序中采用的解决方案

 

欢迎加入技术分享群

 

以下是其它网友总结的文章,写得很全面,现摘抄下来供大家参考

http://blog.csdn.net/durendong/article/details/9245863

打开一个jsp页面,肯定是用客户端脚本进行刷新了。
Javascript刷新页面的几种方法:
1 history.go(0)
2 location.reload()
3 location=location
4 location.assign(location)
5 document.execCommand('Refresh')
6 window.navigate(location)
7 location.replace(location)

8 document.URL=location.href 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM