Javascript:history.go()和history.back()的用法和区别

  <input   type=button   value=刷新   οnclick=”window.location.reload()”> 
  <input   type=button   value=前进   οnclick=”window.history.go(1)”> 
  <input   type=button   value=后退   οnclick=”window.history.go(-1)”> 
  <input   type=button   value=前进   οnclick=”window.history.forward()”> 
  <input   type=button   value=后退   οnclick=”window.history.back()”>

后退+刷新
<input   type=button   value=后退   οnclick=”window.history.go(-1);window.location.reload()”>

在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)去指定的某页
如果是history.go(0)那就是刷新
 
 
 
这两个属于JS代码,相当于IE的前进、后退功能。
具体的用处就要看什么时候需要这个就用上。比如用户注册时的验证是后台验证,不符合要求的时候就可以用这个,可以最大限度保证用户少重复输入数据。
例如:载入页面:
  function onLoadPage(){
    if(event.srcElement.tagName==”SPAN”){
        oFrame=top.window.middle.frames[2];
        oTxt=event.srcElement.innerText;
        switch(oTxt){
            case “前 进”:
                oFrame.history.go(1);
            case “后 退”:
                oFrame.history.back();
            case “刷 新”:
                oFrame.location.reload();
        }
    }
}

 

 

 

 

  go()方法只有一个参数,即前进或后退的页面数

 

   如果是负数,就在浏览器历史中后退。如果是正数,就前进(这种差别就像Back和Forward按钮之间的差别)。


   因此,后退一页,可用下面的代码:

 

   window.history.go(-1);

 

   当然,window对象的引用不是必需的,也可使用下面的代码:

 

   history.go(-1);

 

   通常用该方法创建网页中嵌入的Back按钮,例如:

 

   <a href="javascript:history.go(-1)'>Back to the previous page</a>

 

   要前进一页,只需要使用正数;

 

   history.go(1);

 

   另外,用back()和forward()方法可以实现同样的操作:

 

   //go back one
   history.back();


   //go forward one
   history.forward();

 

   这些代码更有意义一些,因为它们精确地反应出浏览器的Back和Forward按钮的行为。

 

   虽然不能使用浏览器历史中的URL,但可以用length属性查看历史中的页面数:

 

   alert{"There are currently" + history.length +" pages in history.");

 

   如果想前进或后退多个页面,想知道是否可以这样做,那么上面的代码就非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值