2013-07-16 5 views
1

Я работаю над формой, которая заполняется с использованием запросов AJAX. После отправки формы отображаются результаты поиска. Если пользователь нажимает кнопку «назад», форма, поддерживаемая AJAX, находится в исходном состоянии только с первым полем выбора.Как я могу перезагрузить состояние с помощью history.js, если пользователь нажимает кнопку «Назад»?

Я добавил history.js, чтобы он запоминал выбор и перезагружал их. К сожалению, это также происходит, когда я возвращаюсь на страницу с помощью органического посещения (ввод URL-адреса в браузере). Как узнать, была ли кнопка возврата браузера использована для возврата в форму поиска?

$('document').ready(function() { 
    History = window.History; 
    StateData = History.getState().data; 

    // ... stuff happens 

    // at this point, there has to be a check so it doesn't execute this code 
    // for organic visits 
    for(var field in StateData) { 
    // this is just a basic example 
    if(StateData[field] == 'foo'){ 
     $('#foo').click(); 
    } 
    // there are more fields here 
    } 
}); 

ответ

1

Один подход заключается в использовании popstate, например:

window.addEventListener('popstate', function(event) { 
    var State = History.getState(); 
    console.log('State: ' + State); 
}); 

Но я не верю, что ты имел в виду, чтобы быть в состоянии обнаружить, специально ли нажата кнопка «назад» - ваша страница предназначен для использования информации о состоянии таким же образом, как были нажаты кнопки «Назад» или «Вперед» (или ни одна).

 Смежные вопросы

  • Нет связанных вопросов^_^