传递给history.pushState的状态对象是什么,它做了什么?

10 javascript ajax html5 dom

什么是stateObj传递到history.pushState和它有什么作用?

例如, history.pushState(stateObj, title, url);

s4y*_*s4y 7

规范定义的状态对象是作者想要与该状态关联的任何对象:

页面可以在会话历史记录中的条目和下一个("转发")条目之间添加状态对象.然后,当用户(或脚本)返回历史记录时,这些将返回到脚本

MDN有一个更实用(火狐专用)的定义:

状态对象可以是您可以传递给JSON.stringify的任何内容.因为Firefox将状态对象保存到用户的磁盘,因此可以在用户重新启动浏览器后恢复它们,因此我们在状态对象的JSON表示上强加了640k字符的大小限制.