History 接口允许操作浏览器的曾经在标签页或者框架里访问的历史记录。History 接口不继承于任何属性。
先看看浏览器兼容情况
属性
- history.length()
返回一个整数,该整数表示会话历史中元素的数目,包括当前加载的页。例如,在一个新的选项卡加载的一个页面中,这个属性返回1。
打开新页面:history.length(); // 1
- History.scrollRestoration
允许Web应用程序在历史导航上显式地设置默认滚动恢复行为。
- History.state
返回一个表示历史堆栈顶部的状态的值。这是一种可以不必等待popstate 事件而查看状态而的方式。
方法
- History.back()
进入会话历史记录中的上一页,与用户单击浏览器的“返回”按钮时的操作相同。 相当于history.go(-1)。
- History.forward()
进入会话历史记录中的下一页,与用户单击浏览器的“转发”按钮时相同的操作; 这相当于history.go(1)。
- History.go()
将会话历史记录中的页面从其相对位置加载到当前页面,例如上一页的-1或下一页的1。 当integerDelta超出范围时(例如,当会话历史中没有以前访问的页面时为-1),该方法不执行任何操作,也不会引发异常。 调用go()没有参数或非整型参数没有任何效果
- History.pushState()
将给定的数据推送到具有指定标题的会话历史堆栈(如果提供)的URL。
history.pushState(stateObj, “标题”, “bar.html”);
- History.replaceState()
更新历史堆栈上的最新条目以具有指定的数据,标题和(如果提供的话)URL。