Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2015, 14:55   #1
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
Восклицание History.js back

Привет всем!

У меня есть проблема. Я использую history.js.

1) я захожу на страницу www.site.ru/employee
2) затем захожу на страницу www.site.ru/employee/id по клику
всплывает модальное окно.
Код:
 History.pushState({}, '', '')
3) на событие, которые закрывает модальное окно повешено следующее:
Код:
History.back()
4) В итоге я остаюсь на странице www.site.ru/employee/id, а должен был перейти сюда www.site.ru/employee.

Обычно работает все верно, но, google chrome иногда (как повезет, 1 раз из 1, 1 из 10 и даже 1 из 30 раз) зависает и не хочет работать со стэйтами...

После проверки оказалось, что:
1) History.busy() = true
2) событие popstate не срабатывает

Может кто сталкивался с этим?
Версия хрома самая последняя 43.0.2357.65 m


Надеюсь поможете. Спасибо!
acteralex вне форума Ответить с цитированием
Старый 05.06.2015, 11:41   #2
acteralex
Форумчанин
 
Регистрация: 19.05.2011
Сообщений: 189
По умолчанию

Не работает onpopstate;
Не работает кнопки вперед/назад в браузере.
acteralex вне форума Ответить с цитированием
Старый 03.07.2015, 22:01   #3
M-A-X
Новичок
Джуниор
 
Регистрация: 03.07.2015
Сообщений: 2
По умолчанию

Может поможет как заготовка
Код:
	function ajax_handler(){
		$(document).delegate('.history-api a', 'click', function(e){
			e.preventDefault();

			window.history.ready = true;

			var url = $(this).attr('href');
			var page = $(this).attr('rel');
	
			get_ajax_content(url, page);

			new_title = get_title(page);
			history.pushState({page: page}, new_title, url);
		});
	}


    // Opera, FF, Chrome, Safari, IE9.
    if (history.pushState){
		ajax_handler();

		// @todo function
        var initial_page_reg = /PAGEN_1=(\d+)/;
		if(initial_page_reg.exec(location.search))
		{
			page = initial_page_reg.exec(location.search)[1];
		}
		else
		{
			page = 1;
		}

		// initial page replace
		history.replaceState({page: page}, $('title'), location.href);

		// Event listener to capture when user pressing the back and forward buttons within the browser.
		window.addEventListener("popstate", function(e) {
			if (!window.history.ready)
				return; // workaround for popstate on load

			// fix #hash
		    if(e.state)
		    {
				get_ajax_content(e.target.location.pathname+e.target.location.search, e.state.page);
		    }
		    else
		    {
		    	//get_ajax_content(e.target.location.pathname+e.target.location.search, 1);
		    	location.href = e.target.location.pathname+e.target.location.search;
		    }
		});
    }
Тут http://www.vidi-autocity.com/cars/new-car/ навигация работает
http://ru.kpitv.net/ - онлайн ТВ
M-A-X вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в консоли из-за history.js sanu JavaScript, Ajax 0 12.04.2015 01:11
History toolbar Olaf Софт 1 24.11.2009 12:33
History of World Sanek777 Общие вопросы Delphi 2 07.12.2008 22:36
History of World Sanek777 Общие вопросы Delphi 2 05.12.2008 19:49
History of World Sanek777 Софт 0 25.10.2008 16:16