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实现返回上一页并刷新页面的方法分析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)