History对象
History对象
History
对象允许操作浏览器的曾经在标签页或者框架里访问的会话历史记录。
属性#
history.length
: 只读,返回一个整数,该整数表示会话历史中元素的数目,包括当前加载的页,例如在一个新的选项卡加载的一个页面中,这个属性返回1
。history.scrollRestoration
: 允许Web
应用程序在历史导航上显式地设置默认滚动恢复行为,此属性可以是自动的auto
或者手动的manual
。history.state
只读,返回一个表示历史堆栈顶部的状态的值,这是一种可以不必等待popstate
事件而查看状态的方式。
方法#
history.back()
:history.back()
在浏览器历史记录里前往上一页,用户可点击浏览器左上角的返回←
按钮模拟此方法,等价于history.go(-1)
,当浏览器会话历史记录处于第一页时调用此方法没有效果,而且也不会报错。history.forward()
:history.forward()
在浏览器历史记录里前往下一页,用户可点击浏览器左上角的前进→
按钮模拟此方法,等价于history.go(1)
,当浏览器历史栈处于最顶端时,当前页面处于最后一页时调用此方法没有效果也不报错。history.go()
:history.go(N)
通过当前页面的相对位置从浏览器历史记录即会话记录加载页面,比如参数为-1
的时候为上一页,参数为1
的时候为下一页,当整数参数超出界限时,例如如果当前页为第一页,前面已经没有页面了,此时如果传参的值为-1
,那么这个方法没有任何效果也不会报错,调用没有参数的go()
方法或者不是整数的参数时也没有效果,这点与支持字符串作为url
参数的IE
有点不同。history.pushState()
:history.pushState(state, title[, url])
该方法向当前浏览器会话的历史堆栈中添加一个状态state
,其按指定的名称和URL
(如果提供该参数)将数据push
进会话历史栈,数据被DOM
进行不透明处理,你可以指定任何可以被序列化的JavaScript
对象。history.replaceState()
:history.replaceState(stateObj, title[, url])
该方法修改当前历史记录实体,按指定的数据、名称和URL
(如果提供该参数),更新历史栈上最新的入口,这个数据被DOM
进行了不透明处理,你可以指定任何可以被序列化的JavaScript
对象。
每日一题#
https://github.com/WindrunnerMax/EveryDay
参考#
https://developer.mozilla.org/zh-CN/docs/Web/API/History
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理