Изменить URL на запрос AJAX - PullRequest
       0

Изменить URL на запрос AJAX

8 голосов
/ 05 августа 2011

Я хочу добавить несколько GET параметров в URL страницы.Я загружаю контент следующим образом:

$("#content").load("shop.pl #content .product", $.param({categ:1)}));

Как я могу изменить URL-адрес, чтобы иметь тот же параметр ?categ=1?

Ответы [ 3 ]

11 голосов
/ 05 августа 2011

Вы можете использовать HTML5 pushState API для достижения этой цели.Однако, только самые новые браузеры поддерживают его, и IE даже не поддерживает его в IE9.Не было никакого способа сделать это заранее.Однако существует соглашение, согласно которому вы должны использовать location.hash, чтобы указать страницу, состояние которой было изменено с помощью запроса ajax.Для получения дополнительной информации о том, как использовать URL-хэши, чтобы указать состояние на вашей странице, вы можете взглянуть на this .

Есть библиотека, History.js , который можно использовать для перехода в pushState.Его API очень близок к API pushState, но он прозрачно предоставит запасной вариант хеш-кода, если браузер не поддерживает pushState.

3 голосов
/ 05 августа 2011

Ваш контент загружается через AJAX, поэтому, возможно, в URL должен быть изменен фрагмент хеша - см. http://code.google.com/web/ajaxcrawling/docs/specification.html

0 голосов
/ 05 августа 2011

Вы можете попытаться манипулировать видимым URL-адресом, используя метод pushState() (см. документацию , вы также можете прочитать о onpopstate событие ).

Таким образом, вы можете изменить URL-адрес по своему усмотрению.

Демонстрация того, как изменить URL-адрес без перезагрузки страницы, приведена здесь: http://html5demos.com/history

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...