Как поменять url в адресной строке, без перехода на другую страницу?

T.G. (Олег Нечипоренко T.G. (Олег Нечипоренко

Я знаю, что для того чтобы передавать данные в AJAX в адресной строке дописывается hash. Но вопрос - как поменять адрес, не производя перехода на другую страницу. С Hash все понятно. Но вот пример страницы - http://vkontakte.ru/friends. Там вкладки "Друзья" и "Друзья онлайн" при нажатии на них меняется адрес с http://vkontakte.ru/friends?section=all на http://vkontakte.ru/friends?section=online, но перехода не происходит. Как это сделано?
Дополнено (1). Я сам программист. И это не задача первостепенной важности. Просто очень интересно как это делается.
Дополнено (2). <a href="туттвояссылка" onClick="return false;">Твоя ссылка</a> - это не работает и не будет. Там что-то другое.
Дополнено (3). http://habrahabr.ru/blogs/groovy_grails/108611/ - не помогло. Там также реализация через якоря.
Дополнено (4). Самое главное - работает это только в Chrome. В том же Firefox это работает как раз таки через hash
Дополнено (5). 2Sundownhunter: хорошо, обязательно напишу. Кстати на facebook система аналогичная. Там каждая страничка так грузится.
Дополнено (6). Если это решение не для всех браузеров в данный момент, то это не значит, что оно не будет поддерживаться потом всеми браузерами. Вполне возможно, что это часть HTML 5
Дополнено (7). daxiz, что значит невозможно? Я ведь специально привел пример страницы, где это сделано! Что сложно зайти и проверить? Зачем сразу нести чепуху?

Счастливчик82 Счастливчик82

Просто найди програмиста

Гость Гость

<a href="туттвояссылка" onClick="return false;">Твоя ссылка</a>

Гость Гость

Да, там, похоже, хитрей.
Я просмотрел код контакта, и вроде как оно работает так.
При клике оно, таки видимо загружает аяксом контент откуда-то и обновляет div#list_content По крайней мере, в хроме видно, как оно убивает DOM в этом теге и пересоздаёт.

Может, это поможет: http://habrahabr.ru/blogs/groovy_grails/108611/ ?

Гость Гость

Если решение найдешь - напиши пожалуйста на мыло: firefly.other на gmail.com
Заинтересовал:) Я сам вебдевелопер просто:)

Я погуглю, если что-нибудь найду - отпишу здесь.

Гость Гость

Вечерком гляну как на фейсбуке сделано, может, там проще будет понять…

Epsiloncool (Epsilon S Epsiloncool (Epsilon S

В Safari это тоже работает (не через хэш).

Если работает не во всех браузерах, то делаем вывод, что данное решение юзает какие-то специфические особенности браузеров и не является универсальным. Соответственно, польза от него сомнительная.

daxiz daxiz

Изменить URL невозможно=(
Если бы так можно было, бы ломали акки пользователей и другие данные,
Пользователь думает, ага, этот сайт безопасен например это в шапке написано:
location.href='http://vkontakte.ru';
А там введите логин/пароль и заберает его, точная копия Вконтакта
Я сам думал об этом, а жаль=(
А ваще, если хочешь совет:
Алгоритм 2, LangMF 8, AutoIt
Это те проги с помощью которых ты сможешь сделать СВОЙ БРАУЗЕР.
Ну сделай его посиди года 2-3, и улучши всем жизнь…
Сделай платным, куча дополнительных штук, и заработай бабла+)
Как говориться 200 лет, а денег до **я

PR0phet PR0phet

За это отвечает ф-я setLoc, курите http://vkontakte.ru/js/al/common.js
если просто выполнить на странице с входящими сообщениями скрипт javascript: nav.setLoc('mail?act=show&id=2745'); - URL изменится
сейчас сам изучаю, довольно таки интересно сделано.

UPD:
Все очень легко:
В хроме есть поддержка элемента хтмл5 - javascript: history.pushState({}, '', '/' + 'здесь_ваш_путь');
Удачи! ;)

MaxAva MaxAva

Удалил

Добавить комментарий | Похожие обсуждения

Вопросы и ответы по Вконтакте
Вопросы и ответы

Популярные вопросы и ответы о социальной сети www.vkontakte.ru (vk.com)