将当前 js 对象保存在 history.pushState

Save current js object in history.pushState

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

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

但是我遇到了错误

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

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

状态对象可以是任何可以序列化的对象。因为 Firefox 将状态对象保存到用户的磁盘中,以便在用户重新启动浏览器后可以恢复它们,所以我们对状态对象的序列化表示施加了 640k 字符的大小限制。如果将序列化表示大于此的状态对象传递给 pushState(),该方法将抛出异常。如果您需要比这更多的 space,我们鼓励您使用 sessionStorage and/or localStorage。

因此您正在使用 JSON.stringify 序列化数据。

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