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 ...
随机推荐
- 【repost】JavaScript Scoping and Hoisting
JavaScript Scoping and Hoisting Do you know what value will be alerted if the following is executed ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- [LeetCode] Best Time to Buy and Sell Stock with Cooldown 买股票的最佳时间含冷冻期
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 【原】Spark之机器学习(Python版)(一)——聚类
kmeans聚类相信大家都已经很熟悉了.在Python里我们用kmeans通常调用Sklearn包(当然自己写也很简单).那么在Spark里能不能也直接使用sklean包呢?目前来说直接使用有点困 ...
- ajax的循环
一.业务需求 在开发中,当一个列表页面加载完成后,我需要根据列表每一项的id去服务器端获取对应的数据然后再把获取的数据赋给当前id对应的标签. 例如如下表格: 我有一系列的商品编号,我需要根据商品编号 ...
- 记一次企业级爬虫系统升级改造(二):基于AngleSharp实现的抓取服务
爬虫系统升级改造正式启动: 在第一篇文章,博主主要介绍了本次改造的爬虫系统的业务背景与全局规划构思: 未来Support云系统,不仅仅是爬虫系统,是集爬取数据.数据建模处理统计分析.支持全文检索资源库 ...
- webuploader 谷歌浏览器跨域
今天在本地调试webuploader 的image-upload demo时遇到跨域问题(本地post数据到同事的机器中) 会出现No 'Access-Control-Allow-Origin' he ...
- 函数返回多个值(c/c++)
当我们在处理一个数组的时候常常会碰到这样的问题:输入一个数组,和数组的一个元素,返回该元素所在行数和列数.这样就需要返回多组两个值,且组数不定.上述类型的函数在c语言程序里面存在两个问题.第一,函数只 ...
- PL/SQL循环
1.if循环做判断 SET SERVEROUTPUT ON accept num prompt 'qinshuu'; DECLARE pnum NUMBER :=& num ; BEGIN T ...
- Bzoj3894 文理分科
Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 667 Solved: 389 Description 文理分科是一件很纠结的事情!(虽然看到这个题 ...