history对象
浏览器history对象用来保存一些浏览历史记录。history.length=5表示当前窗口有五个访问记录。
|
|
注释1:当我们通过前面列举的方式改变网页地址的时候,都会把新的页面压入到历史记录栈的顶部,同时把指针指向到这个最新的网页
注释2:浏览器在往历史记录栈里面压入新的记录时,是直接在当前指针后面压入的,如果当前指针的后面,还有其它的记录项,都会被丢弃掉
history对象提供了一系列方法
(1)back()返回上一个页面
(2)forward()前进到下一个页面
(3)go(index)接收参数index,指跳转到第几个访问页面中。如果超出history.length则会报错
*点击查看demo
测试history
h5新添加pushState、replaceState
(1)history.pushState()在浏览记录里添加记录
(2)history.replaceState()在浏览记录修改记录
*点击查看demo
测试history
popstate事件
同一窗口的浏览历史出现变化(history对象),会触发popstate事件.
注意1:调用pushState方法或replaceState方法 ,不会触发该事件。只有浏览器的前进后退按钮和history的go,back,forward会触发
popstate事件的回调函数是个event对象,它的state属性指向pushState和replaceState方法的第一个参数
注意2:页面第一次加载的时候,在load事件发生后,Chrome和Safari浏览器(Webkit核心)会触发popstate事件,而Firefox和IE浏览器不会
onhashchange事件
每当锚点发生变化的时候,主流浏览器会触发window对象的onhashchange事件
|
|