DataCloneError:无法克隆对象

时间:2017-06-06 09:46:29

标签: javascript jquery ajax back-button pushstate

我有一个基于ajax搜索的网络(带有输入和结果的过滤器),我想要回复/向前浏览器按钮。所以我必须使用window.history.pushState女巫正在使用content(搜索结果),但我必须存储'带输入和选定值的整个过滤器。

在过滤器输入上我正在使用SumoSelect插件,如果您将所有html元素存储到变量中,然后将其追加到DOM(按下后按钮),SumoSelect的功能不再起作用...... < / p>

Here是我的问题。一个可能的解决方案(我知道)如何在追加后使用.contents()代替.html()

但如果我在.contents()中使用pushState,请执行以下操作:

 window.history.pushState({"html":results,"filter": $('#filter').contents(),"pageTitle":"title"},"", null);

我收到错误:

  

DataCloneError:无法克隆该对象。

那么有什么选项可以说明商店过滤器的状态以使其有效吗?

1 个答案:

答案 0 :(得分:1)

pushState location state object must be serializable,这意味着没有方法。 $(&#39; #filter&#39;)。contents()返回一个无法序列化的jQuery对象。

尝试将内容转换为对象或数组。