博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
具体解释window.history
阅读量:5999 次
发布时间:2019-06-20

本文共 1291 字,大约阅读时间需要 4 分钟。

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()设置的状态数据。

转载地址:http://ykzmx.baihongyu.com/

你可能感兴趣的文章
xdebug配置
查看>>
uva10340 Ail in All
查看>>
Class.forName和New的比较
查看>>
关于堆及内存分配点滴
查看>>
<context-param>与<init-param>的区别与作用
查看>>
时钟AnalogClock与DigitalClock
查看>>
用代码实现在eclipse中自动生成package_这个功能很有用_java版
查看>>
NT式驱动的安装
查看>>
不同浏览器css问题
查看>>
[置顶] CVT广州视源笔试面试经历(2013实习生招聘)
查看>>
判断php数组的维度
查看>>
伪静态规则(Apache htaccess , IIS httpd.ini)
查看>>
分享:CshBBrain V2.0.4 和 CshBBrainAIO V 4.0.3发布
查看>>
Delphi的参数传递约定以及动态参数个数(转载笔记)
查看>>
Android学习笔记37:使用Content Providers方式共享数据
查看>>
基于色彩恒常( color constancy)特性的Frankle-McCann Retinex图像增强。
查看>>
管理 Exchange ActiveSync 安全
查看>>
windbg下载地址
查看>>
要导入android工程灰显的问题
查看>>
截止2013年5月,.net 所有技术路线的一个概括
查看>>