Как вернуть кнопку возврата для работы с якорями (#) и iframe

Я работаю над сайтом, основная часть которого управляется системой навигации в стиле ajax, использующей якоря в URL-адресе для определения состояния приложения.

Вдобавок ко всему теперь мне нужно поддерживать IFrames, которые загружаются поверх этого приложения. Проблема, с которой я столкнулся, заключается в том, что кнопка «Назад» ломается, если я использую фрагменты.

Я создал очень простой образец, в котором не используется какой-либо ajax библиотеки. Все, что у него есть, - это ссылка, которая добавляет привязку к URL-адресу, и iframe с некоторыми обычными ссылками в нем.

Если я сначала щелкну ссылку привязки, а затем щелкну ссылку в iframe, я бы ожидал, что первый щелчок назад вернет исходную страницу iframe, а второй щелчок - удалить привязку из URL-адреса.

Мне известны все существующие решения (YUI, действительноsimplehistory, плагин jquery), и все они отлично работают, но не поддерживают iframe.

Я также знаю, что могу добавить JS на страницы с фреймами и, возможно, направить всю навигацию через родительскую страницу, но я надеюсь, что в этом нет необходимости.

Итак, вопрос в том, может ли кто-нибудь объяснить, что происходит внутри объекта истории в этом образце? Во-вторых, могу ли я что-нибудь сделать с родительским iframe, чтобы уговорить объект истории получить эти навигационные записи?

Примечание. В этом примере я интересуюсь только FF / Safari / Chrome. IE нужно рассматривать отдельно.


person ed.    schedule 10.03.2010    source источник


Ответы (1)


См. производительность JavaScript .hashchange. Может ли это вызвать замедление?

и Как Gmail обрабатывает назад / вперед в расширенном JavaScript?

person balupton    schedule 18.09.2010