程序员的知识教程库

网站首页 > 教程分享 正文

HTML5历史状态管理(html5现状)

henian88 2024-10-28 15:46:12 教程分享 4 ℃ 0 评论

历史状态管理是现在web应用开发的一个难点,用户每一次操作不一定会打开一个全新的页面,因此后退和前进按钮也就失去了作用,解决这个问题首选hashchange事件,通过该事件可以知道URL参数什么时候发生了变化用法如下:

window.onhashchange=function(){

alert(1)

}

而通过状态管理API,能够在不加载新页面的情况下改变浏览器的URL,为此需要使用history.pushState()方法,3个参数状态对象,新状态标题,和可选的相对URL。

history.pushState({name:"test"},"test","a.html");

注意只是pushState是不能改变网页标题的哦。

执行该方法后,新的状态信息就会被加入历史状态栈,但是浏览器并不会真的向服务器发送请求,第二个参数目前没有浏览器实现,因此也可以传入空字符串。

因为pushState()会创建新的历史状态,所以按下后退按钮会触发window对象的popstate事件。popstate事件对象有一个state属性,这个属性就包含第一个参数pushState()状态对象

window.onpopstate=function(e){

console.log(e.state)

}

注意浏览器加载的第一个页面没有状态,因此单击后退按钮返回浏览器加载的第一个页面时,之为null

要更新当前状态,可以调用replaceState();传入的参数与pushState()的前两个参数相同。调用这个方法不会再历史状态栈中创建新状态。只会重写当前状态。

history.replaceState({name:"re'd"},"red");

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表