js返回上一页面

一、history.back() 和 history.go(-1)

history.back() 和 history.go(-1) 都是返回之前页面,但是方法不同,所以是有区别的:

history.back(-1)  //直接返回当前页的上一页,数据全部消息,是个新页面

history.go(-1)  //也是返回当前页的上一页,不过表单里的数据全部还在,相当于点了浏览器上的返回按钮一样

二、history.go

history是你浏览过的网页的url(简单的说就是网址)的集合,也就是你的浏览器里的那个历史记录。它在js里是一个内置对象,就跟document一样,它有自己的方法,go就是其中一个。

这个方法的参数是一个数字,它指定要定位的url相对当前页面url位置的下标。当前的url下标为0,所以window.history.go(-1)就是要定位到相对当前页面下标为-1的页面,也就是之前刚刚访问的页面。

当前的url下标为0,所以window.history.go(-1)就是要定位到相对当前页面下标为-1的页面,也就是之前刚刚访问的页面。

//返回上一页:
window.history.go(-1);

//返回两个页面:
window.history.go(-2);

三、history.back()

history.back() 是在浏览器缓存中读取数据,后退到上一页保持原状态。但是如果上一页刚提交了什么东西,有弹框提示的话,那么在返回的时候,弹框会再次显示。

遇到一种情况:上一页面跳转到达本页面,本页面有空白页面弹框展示及提交等操作,window.history.back() 会展示除弹框外的空白页面,

js方法解决:

可以将 window.history.back() 替换为

window.location.replace(document.referrer)

在大多数情况下,可以理解为返回上一页并刷新。

三、总结

刷新页面: window.location.reload()     window.location.href=""

返回上一页:

【不刷新】:window.history.go(-1)       window.history.back()

【刷新】:window.location.href="上一页url"       window.location.replace(document.referrer)

前进:window.history.go(1)     window.history.forward()

 

注:如果没效果,可能是上一页跳转时超链接上加了target="_blank"标签,即从第一个页面点击进入第二个页面时,是以新窗口的方式打开的.,所以 window.history.back() 读取上一个历史页面时读取不到,即上一页为空,所以没法返回上一页。

扩展延伸:JS实现返回上一页并刷新页面的方法分析

            

posted @   阳光下的向日葵  阅读(3422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示