Внедрение новой записи в историю без изменения URL.Как гугл карты делает - PullRequest
3 голосов
/ 25 августа 2010

Я пытаюсь найти лучший способ не ломать кнопку «назад» в моем приложении javascript.

В своих исследованиях я пытаюсь понять, в каком состоянии находится искусство.Поэтому я обратился к Google Maps, чтобы посмотреть, как это работает.

У него есть функция «назад / вперед», но он не меняет URL при создании новой записи в истории.Попробуйте перейти к http://maps.google.com/,, введите NY и нажмите ввод.Теперь используйте кнопку назад.Без изменения URL.

Как они это делают?Я пытался понять это, но мне тяжело пробираться через устаревшую документацию по истории JavaScript и советы по IE6.

Ответы [ 3 ]

4 голосов
/ 25 августа 2010

Создание новой записи истории:

location.hash = 'new_history_entry';

Создание записи без истории:

location.replace('http://no/new/history/entry');

Карты Google используют фреймы.Чтобы проверить это, запустите HttpFox.Вы получите HTML-страницу с JavaScript.Вы можете проанализировать его самостоятельно или просто поверить, что он работает с фреймами.

1 голос
/ 18 сентября 2010

Ответ Лекенштейна не добавит кнопки «назад / вперед» в IE6, для этого нужен кадр. jQuery History использует событие onhashchange, если браузер поддерживает его (все современные браузеры поддерживают), если нет, то будет добавлена ​​соответствующая обратная поддержка, необходимая (т.е. для 6 требуется iframes, для firefox 1, ie7 и т. Д. Просто нужны интервальные проверки). 1003 *

0 голосов
/ 25 августа 2010

Что-то вроде Диспетчер истории браузера YUI сделает это

...