history.pushstate
history.pushstate() 和 history.replaceState() 是history对象的两个新增的方法,
是可以很好的操作历史记录的方法;
history.State()
history.State()的作用是向浏览器的历史添加一条记录,我们来看看如何使用这个方法:
我们创建一个html网页文件,在网页中加入一个button按钮即可,我们看看显示效果
我们看到在地址栏中显示了文件的地址,现在我们不刷新网页,也不跳转到其它地址,
就在原网页不变的情况下改变地址栏中的地址,怎么做呢?
<body>
<button id="abc">test</button>
<script>
var abc=document.getelementbyid("abc");
abc.οnclick=function(){
window.history.pushState(null,null,'?page=1');
}
</script>
</body>
在我们之前的网页中添加javascript代码,也就是上面红色的部分,使用了pushState()方法;
然后我们打开这个网页,开始的时候地址栏是不变的,我们点击一下按钮看看:
网页本身没有任何变化,只是地址栏发生了变化,实现了无刷新改变地址栏,并且在历史记录
中添加了一个新的纪录;
history.replaceState()
history.replaceState()的作用是替换当前的历史记录,我们看看如何使用这个方法:
在上面 history.pushState( ) 方法中,我们第一步创建了一个index.html网页,
第二步我们使用pushState( )方法增加了一条历史记录,这是第二条历史记录;
现在我们在上面的基础上改变一下,使用replaceState() 方法,代码:
<body>
<button id="abc">test</button>
<script>
var abc=document.getElementById("abc");
abc.οnclick=function(){
window.history.pushState(null,null,'?page=1');
history.replaceState(null, null, '?page=2');
}
</script>
我们再次进入网页,并且点击按钮,触发js函数,
这个时候地址栏中的地址为:file:///F:/web_pro/pro_p/index.html?page=2
我们使用replaceState()方法将历史记录 file:///F:/web_pro/pro_p/index.html?page=1
替换成了:file:///F:/web_pro/pro_p/index.html?page=2 ;
整个过程还是比较清楚的;
总结:pushState()方法是在历史记录中增加一条新的记录;
replaceState()方法是将当前的历史记录给替换掉,传说中的夺舍重生!
相关阅读
history.go()和history.back()的用法与区别
Javascript:history.go()和history.back()的用法与区别 简单的说就是:go(-1):返回上一页,原页面表单中的内容会丢失;back():返回上一
今天在做一个vue的搜索功能,需要从搜索结果页面跳转到细节页面,然后点击返回还能返回到刚刚的结果页面,如果只用window.history.go(-
history.pushState是HTML5的特殊,IE8+支持意思是在不刷新浏览器的情况下给浏览器记录插入队列的意思.“插菊花“参考地址:https://d
1、简介window.history是用来保存用户在一个会话期间的网站访问记录,并提供相应的方法进行追溯。其对应的成员如下:方法:back()、for
Javascript:history.go()和history.back()的用法与区别
Javascript:history.go()和history.back()的用法与区别简单的说就是:go(-1):返回上一页,原页面表单中的内容会丢失;back():返回上一页