最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-27 20:22:40
文档

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

js中的window.history的用法(一):Window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的URL即创建一个新的历史记录。history.go()、history.back()、history.forward()history.back()和history.forward()分别表示向后一页和向前一页。history.g
推荐度:
导读js中的window.history的用法(一):Window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的URL即创建一个新的历史记录。history.go()、history.back()、history.forward()history.back()和history.forward()分别表示向后一页和向前一页。history.g

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事件触发的时候在事件监听中才能访问。

State的默认值在不同浏览器可能不同,比如IE10以下默认是undefiend,但IE10和IE11默认是null。HTML5推荐使用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应用的影响

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

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

js中的window.history的用法(一):Window.history保存用户在一个会话期间的网站访问记录,用户每次访问一个新的URL即创建一个新的历史记录。history.go()、history.back()、history.forward()history.back()和history.forward()分别表示向后一页和向前一页。history.g
推荐度:
标签: 使用 js window
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top