【前端入门】窗口浏览历史History 对象指的是什么呢?

163 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第29天,点击查看活动详情

window.history属性指向 History 对象,它表示当前窗口的浏览历史。

浏览器工具栏的“前进”和“后退”按钮,其实就是对 History 对象进行操作

History 对象主要有两个属性:

  • History.length:当前窗口访问过的网址数量
  • History.state:History 堆栈最上层的状态值

History历史中移动方法

  • History.back():移动到上一个网址,等同于点击浏览器的后退键。对于第一个访问的网址,该方法无效果。
  • History.forward():等同于点击浏览器的前进键,移动到下一个网址
  • History.go():指定一个整数为参数,移动到参数指定的网址(以当前地址为基准)

History添加记录方法

History.pushState()方法用于在历史中添加一条记录

window.history.pushState(state, title, url)

接受三种参数:

  • state:一个与添加的记录相关联的状态对象
  • title:新页面的标题
  • url:新网址,浏览器的地址栏将显示这个网址,必须同域

修改History对象记录

History.replaceState()方法用来修改 History 对象的当前记录

history.replaceState({page: xxx}, 'title xxx', '?page=xxx');
// URL 显示为 http://example.com/example.html?page=xxx

popstate 事件

history对象出现变化时,就会触发popstate事件,可以为popstate事件指定回调函数,回调函数的参数是一个event事件对象

通过pushStatereplaceState方法,为当前 URL 绑定的state对象(这个state对象也可以直接通过history对象读取)

写在最后

以上习题&笔记从大佬们的论坛学习而来,特感谢大佬们的知识分享~ (学习技术知识,果然要看大佬们的技术博客,大家有好的推荐也欢迎指引我这个小白哈,感恩!)

附上学习链接,感谢这些大佬出题和解答:wangdoc.com/javascript/…