Красивые URL-адреса для барбекю - PullRequest
0 голосов
/ 29 января 2011

Я использую плагин 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);

Спасибо.

1 Ответ

1 голос
/ 02 февраля 2011

Что ж, я нашел решение своей проблемы, не такое изящное, как чистая строка параметров, но пока я не выясню что-то еще, оно подойдет.

Прежде чем выдвигать состояние, используйте функцию jQuery bbqs param.fragment.noEscape, чтобы освободить некоторые неосуществимые символы (к сожалению, пытаясь экранировать & и = останавливает работу функции состояния), затем замените символы «=» и «&» в выдвигаемая строка в состояние.

Затем при получении состояния, прежде чем отправить его в функцию для обновления страницы, замените разделители на «=» и «&», и все пройдет нормально.

...