Расположение браузера обновления Jquery, не перенаправлять - PullRequest
4 голосов
/ 26 октября 2009

Я строю серию базовых аккордеонов для проекта.

Мы хотим, чтобы у них были статические, ссылки на страницы. Итак, мы создали отдельные страницы для каждого из открытых состояний.

Например,

/ whoweare - это основной слайдер.

Но у нас есть вспомогательный слайдер, расположенный на / Whoweare / whatwedo

Что я хотел бы сделать, так это то, что когда пользователь нажимает на заголовок / whoweare, открывается слайдер, и панель URL обновляется до / whoweare / whatwedo, но фактического перенаправления нет. Расположение URL должно просто измениться, ничего более.

Я пытался использовать

window.location.replace($(this).attr('href'));
return false;

Но это, кажется, не достигло того, чего я хотел, оно все еще перезагружается на новую страницу.

Есть другие предложения?

Ответы [ 2 ]

11 голосов
/ 26 октября 2009

Вы не можете изменить URL-адрес без перенаправления - это будет фишинговый кошмар (например, изменение URL-адреса банка на время пребывания на фишинговом сайте).

Вы можете манипулировать только хэшем документа, т. Е. http://domain.com/#identifier - именно так Google, Facebook и т. Д. Обеспечивают сайты AJAX поддержкой истории браузера.

Точная копия # 352343 Изменение адресной строки браузера без обновления .

обновление: HTML5 теперь позволяет pushState, но только в пределах одного домена.

0 голосов
/ 10 декабря 2011

Проверьте плагин jQuery для барбекю Бена Алмана

$. Bbq.pushState () - http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/

...