Вопрос по window.history.replaceState не работает кнопка Назад
При применении window.history.replaceState или pushState меняется адресная строка в браузере, но кнопка назад не хочет работать, хотя в документации написано, что pushState якобы меняет историю и можно будет гулять по url. Но что-то это не работает :-(
|
смотря как вы это используете... читайте мою подпись, там есть ссылка на расширение истории для старых браузеров... но и пример того как работает history.pushState там тоже найдете.
|
Сейчас почитаю, но делаю все примерно так:
$(document).ready(function() { //..много кода $(document).on('click', '.pages_select', toggle_page); function toggle_page() { //..много кода window.history.pushState(null, null, "http://сайт.ru/index.php?page4"); $.ajax({ type: 'POST', url: '../module/firm_catalog_tasks.php', data: {firm_id:firm_id,page:page, task:"next_page"}, success: function(data) { comments_block.html(data); //тут меняется часть содержимого страницы } }); } //..много кода }) |
нужно вроде как-то использовать popstate с setTimeout-ом, но вот куда его не подкручиваю все равно не хочет пахать, может кто дополнить код, как это должно быть?
|
вы о чем? какие setTimeout'ы тут? событие popstate срабатывает тогда когда пользователь жмет в браузере кнопки назад/вперед. Не надо никаких таймаутов, просто вешайте событие и при его срабатывании подгружайте то что нужно.. По ссылке что я описал выше, есть пример того как это делается на jQuery. Причем описано на русском языке.
|
Ну в общем никак с этой темой не разберусь :)
Вначале оказалось что фаер фокс тупил и не записывал в хистори урл с решетками. Хром - все записывал нормально. Поправил все это дело через %23. Теперь уже тупит Хром. Фаер фокс всю историю сохраняет и событие popstate обрабатывает нормально, а хром начинает циклично обновлять старницу. Вот обработчик события: window.onpopstate = function(e) { window.location = location.href; } где-то про таймауты писали, тоже их не хочет понимать, в цикле производит обновления и все. в Фаер фоксе все гуд. Как можно это исправить? |
Часовой пояс GMT +3, время: 04:16. |