考试系统--前进/后退功能

         页面上常常有返回button,回到上一页面,怎样做到?

         曾经的时候不知道有好的方法,所以就是给button上带上所实用的上的參数所有传回去,然后依据參数又又一次载入一遍.当时这么做的时候,没有想过浏览器的前进,后退功能,假设这个跟我带參数一样做的话,那得多费劲.后来发现,javascripthistory对象包括浏览器的历史,用这个back()就能够做到返回,后退的功能.

        为了研究一下这个history的方法,建立了三个页面,分别叫FirstPage.aspx,SecondPage.aspxThirdPage.aspx.三个界面的代码主要都是一个文本框,一个链接和一个span.文本框用于输入文本,看看前进或后退之后,文本能否够保留;链接用于跳到下一个页面,由于须要浏览过,才会有上一个url和下一个url;还有就是一个span加入了onclick事件,事件就是javascripthistory.back()或者history.forward()方法.

         FirstPage的代码.

 <form id="form1"runat="server">
    <div>
        <asp:TextBox ID="TextBox1"runat="server"></asp:TextBox><br />
        <h3>第一页</h3>
        <ahref="SecondPage.aspx">去第二页</a> <br />
        <spanonclick="goForward();">下一页</span>
    </div>
 </form>

         效果图:


        SecondPage的代码

 <form id="form1"runat="server">
        <div>
            <asp:TextBoxID="TextBox1" runat="server"></asp:TextBox><br/>
             <h3>第二页</h3>
            <table border="1">
                <tr>
                    <td>
                        <ahref="FirstPage.aspx">去第一页</a><br /><hr />
                        <spanonclick="goBack();">上一页</span></td>
                    <td>
                        <ahref="ThirdPage.aspx">去第三页</a><br /><hr />   
                        <spanonclick="goForward();">下一页</span>
                    </td>
                </tr>
 
            </table>
        </div>
 </form>

      效果图


        ThirdPage.aspx

<form id="form1"runat="server">
    <div>
        <div>
        <asp:TextBox ID="TextBox1"runat="server"></asp:TextBox><br /><hr />
         <h3>第三页</h3>
        <ahref="SecondPage.aspx">去第二页</a> <br /><hr/>  
        <spanonclick="goBack();">上一页</span>
    </div>
    </div>
</form>

     效果图:

 

         每一个页面都有一段javascript代码,为了简单,三个都是一样的,仅仅是有的页面有的方法是没有调用的.

 <scripttype="text/javascript">
        function goBack()
        {
            window.history.back();
        }
        function goForward() {
            window.history.forward();
        }
    </script>       

        执行代码,假设在第一个页面直接单击下一页是没有效果的,没有下一个url能够让他过去.

        首先点击各个链接,从第一页,点下一页到第二页,从第二页到第三页.然后在第三页,点击span中的上一页,就会回到第二页.

        在三个页面的文本框中分别输入1,2,3,回退或前进文字还是存在着.表示back(),forward()和浏览器的后退和前进的效果是一样的.上一个页面是什么样子回去之后还是什么样子.

        

        假设我想从第三页,直接跳到第一页,怎样做?

        在第三个页面,加入一个span

<span onclick="goNum();">去上上页</span>

        而在javascript中加入一个function

         function goNum() {
             window.history.go(-2);
         }

       效果图:


        这样就能点击"去上上页"到第一页,并且文本框中输入也是不会刷没的.

 

        这种话,go(),back()forward()都能实现保留数据的前进后退,go()back()他们的差别是什么呢?

        假设你使用go()的话,go(1)forward()一样,go(-1)back()一样.go(-2)就是上上页,go(2)就是下下页.对于go()的语法的是:history.go(number|URL),你能够输入number或者详细的url进行跳转,可是输入实际的url,不知道究竟要输入什么样的才合适,反正我试的几种都无论用.


         另一点,window.location.reload(),这个实现又一次载入,刷新的功能.可是使用这个,假设文本框中有数据是会刷空的.还有这个写在server端控件用onClientClick,前进后退是无论用的.

  <asp:LinkButtonID="LinkButton1" runat="server"OnClientClick="goForward();">LinkButton</asp:LinkButton>
         欧了,差点儿相同了.

         知道了这样的的前进,后退,对以后跳转页面用处多多.

原文地址:https://www.cnblogs.com/mengfanrong/p/3780598.html