JavaScript History API 支持无刷新操作浏览器历史,含 pushState(添加记录)、replaceState(替换记录)和 popstate 事件监听(响应前进/后退),用于 SPA 路由与状态管理,受同源策略限制。

JavaScript 通过 History API 提供了对浏览器历史记录的可控操作,比如前进、后退、添加或替换当前页的历史条目,而无需刷新页面。它主要用于单页应用(SPA)实现无跳转的路由切换和状态管理。
在当前会话中新增一条历史记录,不触发页面刷新,URL 改变但不发起请求。
history.pushState(state, title, url)
""
示例:history.pushState({page: "about"}, "", "/about");
执行后地址栏变为 /about,但页面内容不变;点击浏览器“后退”会回到上一页,且触发 popstate 事件。
用新状态覆盖当前历史条目,不会新增记录,适合更新 URL 或状态但不想让用户多按一次“后退”。
history.replaceState(state, title, url)
pushState 相同示例:history.replaceState({loaded: true}, "", "/home?ref=internal");
地址栏更新,但历史栈长度不变。
当用户点击前进/后退按钮,或调用 history.back()/history.forward() 时触发,用于同步 UI 状态。
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
193
立即学习“Java免费学习笔记(深入)”;
state 属性即为 push/replace 时传入的状态对象示例:
window.addEventListener("popstate", (e) => {<br> console.log("当前状态:", e.state);<br> if (e.state?.page === "about") renderAboutPage();<br>});history.back() / history.forward() / history.go(n):模拟用户导航行为history.length:只读属性,返回当前会话中的历史条目数(含当前页)#)变化不会触发 popstate,需监听 hashchange 事件基本上就这些。用好 pushState 和 popstate,就能让单页应用拥有接近原生的导航体验。
以上就是javascript怎样操作浏览器历史记录?_javascript的History API如何使用?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号