0

AJAX履歴管理にBBQjqueryプラグインを使用していますが、「かなりの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 に答える