0

我正在使用 BBQ jquery 插件进行 AJAX 历史管理,但在获取“漂亮的 url”时遇到问题。我已经尝试了我能想到的一切,但希望我错过了一些愚蠢的东西,有人可以指出我正确的方向。

我正在为仅填充的输入序列化一个表单,以避免散列片段中的空查询。提醒 decodeURIComponent 正在显示我想要的字符串,但我仍然以#hashfragment=key%26value%3Dkey%26value

任何人都可以帮忙吗?相关代码如下。

stateQuery = $('#searchUsers :input[value]').serialize();
stateQuery = decodeURIComponent(stateQuery);
// Push the state into history and replace any other keys
$.bbq.pushState({ search: stateQuery }, 2);

谢谢。

4

1 回答 1

1

好吧,我找到了一个解决我的问题的方法,它不像一个干净的参数字符串那么优雅,但直到我想出别的办法它会做。

在推送状态之前,使用 jQuery bbqs param.fragment.noEscape 函数取消转义一些不重要的字符(可悲的是试图转义 & 和 = 停止状态功能的工作),然后替换被推送字符串中的 '=' 和 '&' 字符进入状态。

然后在获取状态时,在将其推送到更新页面的函数之前,用“=”和“&”重新替换分隔符,一切都顺利通过。

于 2011-02-02T14:58:12.120 回答