问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

history.go和History.back的区别及应用

发布网友 发布时间:2022-05-01 13:23

我来回答

1个回答

热心网友 时间:2022-04-23 02:26

history.go()和History.back()的区别及应用
分类: javascript
< 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()" >
JSP 返回上一页的几种方法
1. < a href="javascript:history.back(-1)">返回上一页
2. < a href="javascript:;" onClick="javascript:history.back(-1);">返回上一页
3.如果是用按钮做的话就是:
< input type="button" name="Submit" onclick="javascript:history.back(-1);" value="返回上一页">
4.用图片做的话就是:
< a href="javascript :;" onClick="javascript :history.back(-1);">< img src="图片路径" border="0" title="返回上一页">< /a>
5.< a href="javascript:history.go(-1);">向上一页< /a>, 返回两个页面: history.go(-2);
页面跳转:onclick="window.location.href='list.php'"
6.用js实现页面自动返回到上一页
几秒钟后自动返回上一页代码:(加入两个head间,3000表示3秒)
< script type="text/javascript">setTimeout("history.go(-1)", 3000); < /script>
< SCRIPT language=javascript>
function go()
{ window.history.go(-1);}
setTimeout("go()",3000);
< /SCRIPT>
Javascript 返回上一页
1. Javascript 返回上一页 history.go(-1), 返回两个页面: history.go(-2);
2. history.back().
3. window.history.forward()返回下一页
4. window.history.go(返回第几页,也可以使用访问过的URL)
JavaScript:history.go() 的妙用
在Web开发中,会遇到从一页(父页)导向另一页(子页),并且要求“返回”父页的情况,在这里如果用ASP.NET提供的Response.Redirect()方法,往往不会达到理想的效果,例如:返回后,重新加载了页面,无法保存导向子页前的状态,等等,在这里我就介绍一下如何使用JavaScript中history.go()函数来实现返回功能并且保存住状态的方法。
这个函数用起来很简单,只要在页面上加一个html的input元素,例如:
< input type="button" value="返回">
然后再为这个元素添加onclick属性,如:
< input type="button" value="返回" onclick="history.go(-1);">
这样就能达到返回上一页的效果。但是,往往在实践中,并没有这么简单,当你在向服务器提交请求的时候,引起页面回发,你再用history.go(-1)这招就不灵啦,它在这里是返回你回发前的状态,go后面的参数,实际上就是标识你要返回你回发第前n次的状态,所以只要能记住回发了几次,就能用history.go(-n)准确地返回到父页了。
在Web开发中,全局变量也是存不住的,当页面回发后,全局变量的值就会丢失,取而代之的是视图状态,所以我们就只能用视图状态来记录回发的次数了。那么就封装一个视图状态属性把。
public int returnCount
{ get{ if(ViewState["returnCount"] == null)
ViewState["returnCount"] = 0;
return (int)ViewState["returnCount"]; }
set { ViewState["returnCount"] = value ;} }
定义好这个后,把他放到Page_Load里面,让他每次在页面回发时减1,这样就能准确的记住回发了几次。
protected void Page_Load(object sender, EventArgs e)
{ returnCount--; //要放在!iIsPostBack之外,要不然就仅仅在页面第一次加载时执行一次,回发时就不执行了。
if(!IsPostBack)
{ } }
吼吼,到这一步还没完呢,要把我们封装的属性加到Js里面。如下:
< input type="button" value="返回" onclick="history.go('< % =returnCount % >');" >
这下就完美了,管你在页面上怎么回发,只要一点这个按钮,肯定会返回到父业的。
注意:
1、如果在本页面上有Response.Redirect()到本页或者类似的情况,那么就要将returnCount作为查询字符串传递一下了,因为这东西在页面失效时就over了。
2、本文仅对非Ajax的Web系统有作用,Ajax的还没仔细研究过
javascript:history.go(-1)返回上一页时,网页已过期
通常出现网页过期提示都是因为之前发生表单post,对于这种请求方式,浏览器会认为返回的显示内容与提交的数据有关,除非你再次提交数据,否则无法显示。而如果改用get方式提交数据,在IE中,会默认对同一url的get操作,返回的内容相同。
出现这种情况我想是因为你的a.jsp是通过之前的post操作显示出来的吧,尝试改成get。如果在详单页面中存在对于数据的更改,在返回时最好不要使用history导航的方式,浏览器是不会去服务器端拿数据的,最好是将url带过来吧,用根据url控制浏览器跳转,get方式在最后记得加上随机时间戳,不然有可能出现数据不更新的情况。
解决办法:首先试试back()或go(-2),若依然不行,则取消禁用页面缓存的*
session_cache_limiter('private,must-revalidate');
作用:当session_cache_limiter('private')时,用处是让表单history.go(-1)的时候,填写内容不丢失。
go(-2)后再forward(1).
为什么我在点击浏览器的后退按钮后,所有字段的信息都被清空了
答:这是由于你在你的表单提交页面中使用了 session_start 函数。
因为我们后退浏览的是缓存页,而该函数会强制当前页面不被缓存。所以出现了’警告: 网页已经过期!’.
这些信息,而我们不得不刷新下才能正确显示,对于一个程序人员来说有可能无所谓,但是对于一个internet网上的一个顾客来说,看到该页面,他有可能关闭该页面,而不会去查看这些信息!
还有一个原因就是当一个网站流量比较大的时候,缓存是我们程序人员最好的工具,如果失去了这把工具,那么你所在的虚拟服务器必将受到考验!
解决办法为,
1、不使用session_start()函数。
2、在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。
还有基于session的解决方法,在session_start前加上
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般
在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现。
第一,使用Header方法设置消息头Cache-control
引用:
header(’Cache-control: private, must-revalidate’); //支持页面回跳
第二,使用session_cache_limiter方法
session_cache_limiter('private, must-revalidate'); //注意要写在session_start方法之前
< meta http-equiv="Cache-Control" CONTENT="private,must-revalidate">
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这种情况需要准备什么样的证据才能保证维权成功,关于个人知识产权方面... 侵犯著作权罪成立的条件是什么 网站被抄袭,怎么办?官网网页内容抄袭引发的法律问题 版权申请哪家性价比高? 著作权侵权损害如何赔偿 瓷砖划痕怎么处理方法 地板砖划痕怎么去除十种方法 关于梦幻西游转区的一些问题。懂的进。 茶叶泡水发苦的原因茶叶泡水发苦是什么原因 ...那又怎么样?从化学角度讲不也是那种分子起的作 javascript中history.back(-1)和history.go(-1)有什么区别? 为什么这句 返回 有时候无法返回到上一个历史页面呢? 颍 是什么字什么意思 颍的含义 如何在用javascript:history.back();返回后自动刷新 颍的意思是什么? ps4现在有哪些型号的?价格是多少?礼盒里的东西全部配全了吗?手柄什么要不要单买? 梦见家里养的猪要跑,我又把他它追回来了 ps4手柄港版国行,美版版本号是什么 Ps4手柄16版个17版有啥区别吗 佘太翠手镯切开是什么样的 有那些养生食谱? 都有哪一些养生食谱啊 养生健康食谱 为家庭设计的一周的食谱。要求有营养、符合养生之道,并且要变换菜的品种。 佘太玉在什么地区? 电脑里制作好的视频歌曲,在上传到手机里的全民K歌时程序中,需要用手机全民K歌中的扫一扫去扫电脑上的 佘太翠雪花紫就是紫玉吗 春季一周养生食谱 余太翠与翡翠玉的区别? webBrowser如何屏蔽javascript:history.back() 颖字有些什么含义 怎么样判断页面是由history.back返回的 名字取鸶颍有代表什么意思吗? history.back()异常 history.back() location.href = &quot;javascript:history.back()&quot; JS的history.back();返回后表单的值都还在? 代码 javascript怎么设置history 华为wlan热点安全么 javascript用history.go(-1)或history.back()后退不会把后退后的页面... history.back(-1) 到第一个页面如何弹出消息提示“已经是第一页了” 为什么华为畅享z连,wifi,很容易断? javascript:history.back(1)和back(-1)有什么区别? 华为畅玩版wifi热点在哪里 怎么固定电脑电源线,就是主机到插头那段,经常被家长拔掉,害得我开不了机,一定固定,怎么也拔不下来 办公系统oa免费版有哪些,哪个好 家用小家电电源线一般是和箱体固定的吗 华为畅享2插卡版能连wifi吗?