• 由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 

  • 相关阅读:
    多线程与多进程
    Socket网络编程
    Python之路【第五篇】:面向对象及相关
    python 面向对象(进阶篇)
    面向对象
    day1
    day3
    day2
    黑马程序员--C语言中的指针(6)
    黑马程序员--C语言中的指针(5)
  • 原文地址:https://www.cnblogs.com/bribe/p/4266767.html
Copyright © 2020-2023  润新知