javascript中history.go()和history.back()的区别

时间:2022-08-26 16:08:36

原文讲的比较详细,我这边只讲history.go()和history.back()的区别。

为什么探讨这个问题呢?主要是在编写贴吧的时候碰到了返回上一页的问题,具体情况是这样的:

我在评论页面设置了<a href="javascript:history.back()">返回</a>这样一个返回按钮,希望实现的功能是当我提交评论的时候

能够点击返回回到上一级页面,也就是帖子目录页面。但是在现实实现中,我发现使用上面那个history.back()时,他只会返回刷新前的页面,

这是我不得不对history.back()的实现方式提出疑问。查阅了该博客资料http://www.mikebai.com/Article/2009-11/757.html后发现,history.back()不论你传了什么参数,例如-1,

null,1,-2,-3等值只能返回上一次刷新的页面,而非进行N次跳转。

在该博客的建议下,我使用了history.go()方法。

注意到每次提交评论是一个刷新页面的过程,故将该方法中的参数写活,就将刷新值令为renewCount,将每次刷新的次数传进history.go(-renewCount)中。

最后不论在评论页面提交几次评论,都可以实现了上级跳转,返回帖子页面目录。

 

 

~~~~~~~~~~~~~~~~~~~~贴出原文省的找了~~~~~~~~~~~~~~~~~~~

 

<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()">在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();
         }
     }
}


打开一个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