我有一个基于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:无法克隆该对象。
那么有什么选项可以说明商店过滤器的状态以使其有效吗?
答案 0 :(得分:1)
pushState location state object must be serializable,这意味着没有方法。 $(&#39; #filter&#39;)。contents()返回一个无法序列化的jQuery对象。
尝试将内容转换为对象或数组。