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.");
js 中histroy.back()与history.go()的区别的更多相关文章
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
C#中??和?分别是什么意思? 在C#中??和?分别是什么意思? 1. 可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; ...
- 关于js中for in和foreach in的区别
js 中for in 和foreach in的区别 两个的作用都用来遍历对象,但为什么有了for in语句了还要foreach in语句呢,后来看了下foreach in开发的文档,foreach i ...
- js中加“var”和不加“var”的区别
JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: var x // x 为 undefined var x = 6; // x 为数字 var x = "Bill&q ...
- JS中构造函数和普通函数有什么区别
JS中构造函数有普通函数有什么区别? 1.一般规则 构造函数都应该以 一个大写字母开头,eg: function Person(){...} 而非构造函数则应该以一个小写字母开头,eg: functi ...
- js中数组遍历for与for in区别(强烈建议不要使用for in遍历数组)
js中遍历数组的有两种方式 var array=['a'] //标准的for循环 for(var i=1;i<array.length;i++){ alert(array[i]) } //for ...
- js中NAN、NULL、undefined的区别
NaN:保留字(表明数据类型不是数字) undefined:对象属性或方法不存在,或声明了变量但从未赋值.即当你使用了对象未定的属性或者未定义的方法时或当你声明一个变量,但你确从未对其进行赋值,便对其 ...
- js中event的target和currentTarget的区别
js中的event对象包含很多有用的信息 target:触发事件的元素. currentTarget:事件绑定的元素. 两者在没有冒泡的情况下,是一样的值,但在用了事件委托的情况下,就不一样了,例如: ...
- JS中的substring和substr函数的区别
1. 在JS中, 函数声明: stringObject.substring(start,stop) start是在原字符串检索的开始位置,stop是检索的终止位置,返回结果中不包括stop所指字符. ...
- js中innerHTML与innerText的用法与区别
用法: <div id="test"> <span style="color:red">test1</span> te ...
随机推荐
- Selenium-java-Log4j环境搭建和
1 导入Log4j ,我这版本是1.2.17 自己选择版本 **别告诉我不会导入 2 Path 奶瓶 3 创建一个与src同目录文件 命名为 log4.properties 4 文件的内容是, ...
- 平常看到的Alt+xx 快捷键用法
1. 先按Alt, 哪一个菜单对应的字符是有划线的. 2. 输入对应的字符打开相应的菜单, 3 再输入相应的字符打开子菜单
- javascript中的原型和继承
javascript一直是初学者口中的难点,甚至一些有些许工作经验的人也不太明白其中的原理,而我就是那个初学者,前段时间在阮一峰老师的博客上看了一篇文章<javascript继承机制的设计思想& ...
- UVA10304
全部遍历.设置两个下标,若相同i++,j++,不相同则j++. #include<stdio.h> #include<string.h> int main(){ ]; ]; s ...
- poj题目
poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围 ...
- FCM聚类算法介绍
FCM算法是一种基于划分的聚类算法,它的思想就是使得被划分到同一簇的对象之间相似度最大,而不同簇之间的相似度最小.模糊C均值算法是普通C均值算法的改进,普通C均值算法对于数据的划分是硬性的,而FCM则 ...
- 语义网 (Semantic Web)和 web 3.0
语义网=有意义的网络. "如果说 HTML 和 WEB 将整个在线文档变成了一本巨大的书,那么 RDF, schema, 和 inference languages 将会使世界上所有的数据变 ...
- day8-------socket网络编程
简单的socket 一个server同时只能处理一个链接 代码如下: server端代码 #author = ruixin li import socket server = socket.so ...
- git常用命令
开始的时候 git config --global user.name "Your Name" git config --global user.email "email ...
- jquery Combo Select 下拉框可选可输入插件
Combo Select 是一款友好的 jQuery 下拉框插件,在 PC 浏览器上它能模拟一个简单漂亮的下拉框,在 iPad 等移动设备上又能回退到原生样式.Combo Select 能够对选项进行 ...