history

可以看到History对象有以下属性方法:

history_第1张图片
History

1.back(),返回上一个页面;

2.forward(),跳转至下一个页面;

3.go(),go(1)相当于forward(),go(-1)相当于back();还可以接受2/-2等数字作为参数实现跳转;

4.length属性,当前在history栈中的url个数;

5.pushState(state,title,url),接受三个参数,url必须与所在页面同源,可以为path('/public/xx'),query("?name=tom"),hash('#nihao')等形式;state可以为任意类型的数据,在window.onpopstate监听方法中通过history.state获取到 输入的state值,可以通过这个state来作为页面标识进行一些响应的操作;当然在onpopstate方法中也可以获取到当前的url,也可以通过url来标识页面;

6.replaceState(state,title,url),同pushState用法一致,只是会替换当前url;

7.scrollRestoration(),设置记录页面的scroll 位置。目前浏览器支持情况不好,暂时不深入


history_第2张图片
pc浏览器支持1


history_第3张图片
mobile浏览器支持


8.state,在pushState或者replaceState传入的state;

使用history的pushState/replaceState及window的onpopstate事件,结合ajax可以实现无刷新的页面跳转及前进后退。可以前往拜读张鑫旭大神的文章(https://www.zhangxinxu.com/wordpress/2013/06/html5-history-api-pushstate-replacestate-ajax/);

你可能感兴趣的:(history)