Показать сообщение отдельно
  #1 (permalink)  
Старый 23.07.2013, 18:21
Аспирант
Отправить личное сообщение для rockerror Посмотреть профиль Найти все сообщения от rockerror
 
Регистрация: 07.11.2011
Сообщений: 54

window.onpopstate только на обработку "вперед/назад" браузера
Всем привет. Сейчас имею интимные отношения с задачкой по переводу одного проекта в формат SingePageApplication. Т.е. чтобы весь контент абсолютно доставлялся клиенту без перезагрузки страницы. Учитывая, что проект довольно большой и с сложившейся структурой и функционалом, особенно на бэкэнде, некоторые проблемы приходится решать раком. В частности столкнулся вот с какими граблями и никак не могу их обойти:

для того, чтобы аяксом нормально обрабатывать не только действия связанные с жамканьем на ссылки, но и события браузера "вперед/назад" был добавлен от такой кусочек кода:

window.onpopstate = function( e ) {
    e.preventDefault();
    var returnLocation = history.location || document.location;
    singlePage.switchToPage( returnLocation.pathname );
}


Проблема в том, что он срабатывает не только при переходе вперед/назад, но и при первой загрузке по прямой ссылке. Т.е. если мы тупо переходим в новой вкладке на какой-то адрес проекта, этот код все-равно отрабатывает. Вот сижу и пытаюсь придумать как от этой ненужности избавиться. Может кто подскажет что-нибудь дельное?
Ответить с цитированием