在history.pushState中保存当前的js对象

时间:2016-03-10 10:53:31

标签: javascript jquery jquery-jtable

我正在尝试在历史记录中保存当前的js对象。

history.pushState($(this)[0],'List',window.location.href);

但我收到错误

  

DataCloneError: The object could not be cloned. history.pushState($(this)[0],'List',window.location.href);

1 个答案:

答案 0 :(得分:2)

https://developer.mozilla.org/en-US/docs/Web/API/History_API

state对象可以是任何可以序列化的对象。因为Firefox将状态对象保存到用户的磁盘,因此可以在用户重新启动浏览器后恢复它们,因此我们在状态对象的序列化表示上强加了640k字符的大小限制。如果将序列化表示形式大于this的状态对象传递给pushState(),则该方法将引发异常。如果您需要更多空间,建议您使用sessionStorage和/或localStorage。

所以你正在使用JSON.stringify为数据序列化。

 history.pushState(JSON.stringify($(this)[0]),'List',window.location.href);