由window.history.back()引發的問題
編寫人:CC阿爸
2015-1-30
今天在這里,我想與大家一起分享由windows.history.back()引發的問題,筆者在實際開發當中遇到了多種不同的情況,在此做個小結,以供參考。有興趣的同學,可以一同探討與學習一下,否則就略過吧。
1.由於剛開始進行的web開發,很多時候使用的為html控件,因此處理起來相當簡單
如以下兩種方法:
window.history.back(); (不會刷新)
< 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>
< 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
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