history replaceState/pushState

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了history replaceState/pushState相关的知识,希望对你有一定的参考价值。

html5 history新增了两个属性,分别是replaceState()和pushState(),不刷新页面改变页面的url。

 

replaceState()可以不让页面刷新的情况下改变url

用法:history.replaceState("data","页面的title","变化后的url")

<body>
	<input type="button" value="按钮" id="btn">
</body>
<script>
	$(‘#btn‘).click(function(){
		history.replaceState(null,"title","aa.html?name=12345");
		history.replaceState(null,"title","bb.html?name=67890");
	})
</script>

ps:经测试有些页面的title是无法改变的

 

pushState()是在浏览器历史中插入一条url的记录,后插入的会在记录(数组)的最顶端,同理replaceState可以让页面不刷新改变url,区别是可以通过浏览器返回到上一个记录的url,优点是在ajax局部渲染页面后可以通过浏览器返回按钮返回到渲染前的记录

用法:history.pushState("data","页面的title","变化后的url")

<body>
	<input type="button" value="按钮" id="btn">
</body>
<script>
	$(‘#btn‘).click(function(){
		history.pushState(null,"title","aa.html?name=12345");
		history.pushState(null,"title","bb.html?name=67890");
	})
</script>

  

以上是关于history replaceState/pushState的主要内容,如果未能解决你的问题,请参考以下文章

window.history

history.back()

echo > $HOME/.bash_history && history -c 清空history命令

history.go()和history.back()的区别是什么

History 对象

history版本号怎么查看