0

0

js中的window.history的用法(一)

零下一度

零下一度

发布时间:2017-05-18 10:51:12

|

4174人浏览过

|

来源于php中文网

原创

window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的url即创建一个新的历史记录。

history.go()、history.back()、history.forward()

history.back()和history.forward()分别表示向后一页和向前一页。

history.go(num)表示向前或向后翻多少页,num为正数表示向前翻,为负数则向后翻。

History.back()等价于history.go(-1),history.forward()等价于history.go(1)。

执行这三个中的任一方法,触发浏览器的popstate事件,如果只是hash部分发生变化,还可能同时触发hashchange事件。

修改网站路径并创建新的历史记录

history.pushState(statedata, title, url);

参数URL必须和当前URL同源,否则会报错。只可以修改URL中路径、井号之后的片段(即hash)或者URL中问号(?)之后的查询区段。

每执行一次pushState()用新的URL替换掉当前URL,即地址栏URL会变,window.location.href也会变,同时创建一个新的历史记录。但执行pushState()永远不触发hashchange事件。

参数statedata可以是任何被序列化的数据,这些数据被保存在用户硬盘上。但状态数据有大小限制,比如Firefox只允许640KB字符。

使用pushState()的好处:只改URL的hash部分,window.location使用的是同一个document

兼容性问题

pushState直到IE10才被支持,在早版本的IE中只能通过修改window.location=”#foo”完成,但这样会触发hashchange事件。

修改网站路径但不创建新的历史记录

看标题就知道了,replaceState()和pushState()的唯一区别是不创建新的历史记录,而是直接修改当前历史记录。

history.replaceState(stateData, title, url);

历史记录状态

有两种方式可以访问历史访问记录的状态信息,history.state返回历史访问堆栈最顶端的记录的状态;而PopStateEvent.state值有在PopStateEvent事件触发的时候在事件监听中才能访问。

人声去除
人声去除

用强大的AI算法将声音从音乐中分离出来

下载

State的默认值在不同浏览器可能不同,比如IE10以下默认是undefiend,但IE10和IE11默认是nullHTML5推荐使用nul为默认值。

事件

popstate事件

调用history.back()、history.forward()、history.go()等方法,会触发popstate事件,单纯调用pushState()或replaceState()不触发popstate事件。

访问事件的state属性可获取当初pushState()或replaceState()设置的状态数据。

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. 详细介绍h5中的history.pushState()使用实例

3. js中的window.history的用法(二)

4. 深入了解h5中history特性--pushState、replaceState

5. h5中History API 对Web应用的影响

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.6万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号