Перейти на страницу с аякс-контентом по кнопке назад
Помогите разобраться с тем что происходит. Есть страница, на которой данные подгружаются аяксом по переходам на страницы
Код:
_________________________________________ первая страница по ссылке mysite.com (т.е. которая соответствует #1) загружается полностью (без аякса), а все остальные с подгрузкой внутренней части я остлеживаю событие onhashchange и по кликам на ссылках страниц в функции подгружаю по номерам хешей внутренний блок. проблема возникает, когда я перехожу например со страницы mysite.com/#10 на страницу mysite.com/help.html и потом нажимаю кнопку назад в браузере. После того как кнопка назад нажата, браузер показывает правильный url: mysite.com/#10, но во внутреннем блоке данные со страницы mysite.com, т.е. с первой страницы - она из кеша чтоли загружается? как вернуться по кнопке назад на страницу #10 с правильным содержимым блока аякса? при этом событие onhashchange не срабатывает (проверял в консоли) и поэтому не загружается внутренний блок для страницы 10 как это решить? |
Что мешает обрабатывать событие DOMContentLoaded или onload?
|
Цитата:
теперь, DOMContentLoaded– браузер полностью загрузил HTML, и построил DOM-дерево. т.е. по этому событию я смогу получить номер хэша и вызвать page #10 ? |
Цитата:
|
я сделал так
document.addEventListener("DOMContentLoaded", ready); function ready() { console.log( 'DOM ready ' + location.hash ); $("#CAPTCHA").attr("src","http://captcha.ru/captcha/"); } после нажатия кнопки назад - вывод в консоль есть, но после ничего не обновляется как же делать что либо после того, как сработал DOMContentLoaded? |
Например
document.addEventListener("DOMContentLoaded", ready); function ready() { location.hash && window.onhashchange(); } |
и что это дает?
мне нужно выполнить из функции ready() действия - например, вывод в консоль проходит, а дальше $("#CAPTCHA").attr("src","http://captcha.ru/captcha/"); не срабатывает. я сейчас говрю про дейсвия которые происходят при нажатии кнопок back - forward |
В первом сообщении вы спрашивали почему у вас событие onhashchange не срабатывает, вам показали как можно вызывать события искусственным образом. и обрабатывать хэш-параметр.
Почему у вас в какой-то элемент с id CAPTCHA не подгружается url картинки только вам известно. Вы же разметку страницы не даёте. |
Цитата:
и оно не сработало при нажатии кнопки "назад", возможно это связано с подгрузкой jquery. допустим, мы выполнили действие из функции ready(), но ведь оно будет выполняться всегда при условиях: - пользователь перешл по ссылке с хэшем - пользователь перешел по истории на ссылку с хэшем а смысл всего о чем мы гворим - чтобы выполнялось только при надажтии хардварных кнопок, - так возможно? |
ниже в ссылках кстати есть топик, где у кого-то была такая же проблема на сайте дабидабидаби point cvetoland point ru
если перейти на страницу 5, потом перейти на товар, нажать кнопку назад в браузере, то вас выкинет на первую страницу, а нужно на стр. 5 |
Часовой пояс GMT +3, время: 20:38. |