history.go(-1)、history.back()区别

History 对象简单用法

History 对象

History 对象包含用户(在浏览器窗口中)访问过的 URL。

History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问。

注意: 没有应用于History对象的公开标准,不过所有浏览器都支持该对象。

History 对象属性
属性描述
length返回浏览器历史列表中的 URL 数量。
History 对象方法
方法描述
back()加载 history 列表中的前一个 URL。
forward()加载 history 列表中的下一个 URL。
go()加载 history 列表中的某个具体页面。
History 对象描述

History 对象最初设计来表示窗口的浏览历史。但出于隐私方面的原因,History 对象不再允许脚本访问已经访问过的实际 URL。唯一保持使用的功能只有 back()、forward() 和 go() 方法。

Histyory 实际应用
  1. 用途:
返回一个页面方法有很多,就好比给返回按钮绑定一个URL,但是如果一个页面可以从很多页面到达,那么这个页面返回的页面就不是固定的,那么绑定固定的URL显然不妥。
  1. 区别:
history.back(-1)  //直接返回当前页的上一页,数据全部消失,是个新页面
history.go(-1)    //也是返回当前页的上一页,不过表单里的数据全部还在
history.back(0)   //刷新
history.back(1)   //前进 
浏览器实际情况

pc端:

IE5–IE11,360极速浏览器,谷歌,火狐,UC浏览器
history.go(-1)、history.back()、window.location.href=document.referrer
都会在返回页刷新重新执行JS;
苹果浏览器(5.1.7)只有window.location.href 会在返回页重新执行JS
chrome和ff浏览器后退页面,会刷新后退的页面,若有数据请求也会提交数据申请。类似于
history.back()

手机端:

安卓苹果 微信 QQ 支付宝 钉钉 UC浏览器部分history.go(-1)、history.back()会在返回页刷新重新执行JS,部分不会。。window.location.href 会在返回页重新执行JS。。
而safari(包括桌面版和ipad版本)的后退按钮则不会刷新页面,也不会提交数据申请。类似于
Javascript:history.go(-1)。

无论pc还是手机端history.go(-1)、history.back()效果相同。

总结
window.location.reload() //刷新
window.history.go(1) //前进
window.history.go(-1) //后退
window.history.forward() //前进
window.history.back() 后退+刷新
window.location.href=document.referrer//后退+刷新
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值