js 中histroy.back,与history.go

样例:

js6.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

<head>

</head>

<body>

<a href="js7.jsp">点击</a>

</body>

</html>

js7.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>

<head>

</head>

<body>

<a href="#" onclick="history.back(-1);return false;">返回</a>

</body>

</html>

以上的例子:当没有加return false;时返回的跳转不会发生,因为当onclick执行后,接着执行的是

href="#",即是:localhost:8080/Servlet/js/js7.jsp#,故无法发生返回的跳转。

//<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()”>

后退+刷新s

<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();

}

}

}

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.");