2015-12-31 3 views
1
History.pushState(data,title,url) 

History.pushState({state:1}, "State 1", "?state=1") 

Предположим, если мне нужно сохранить номер страницы и порядок сортировки, то какой код мне нужно написать?Относительно использования History.js для управления состоянием браузера

Адресная часть обязательна?

Как вернуть состояние, когда пользователь нажимает на кнопки браузера или вперед?

Предположим, у меня есть объект, как этот

var PageState= { 
    PageNo:1, 
    SortCol:"Name", 
    SortOrder:"ASC" 
}; 

так я могу хранить его, как таким образом

History.pushState({state:PageState}, null, null); ? 

, когда пользователь нажимает на браузер назад и вперед кнопки, то, как я мог бы получить обратно состояние из истории браузера, используя History.js lib?

ищет образец кода. спасибо

ответ

1

Параметр URL необходим, потому что это то, что добавляется к базовому URL-адресу в адресной строке. Если вы хотите остаться на том же пути, но сохраните новое состояние истории, вы можете использовать текущий url: History.pushState(state, null, location.href).

Окно выдает событие при изменении состояния истории.

var PageState = { 
    PageNo: 1, 
    SortCol: "Name", 
    SortOrder: "ASC" 
}; 

History.pushState(PageState, null, location.href); 

stateChangeHandler = function(event) { 
    // This PageState is the same object defined above 
    var PageState = event.state; 
    var NewLocation = event.target.location.href; 
}; 

// These two statements are nearly equivalent. Only one is needed. 
window.onpopstate = stateChangeHandler; 
window.addEventListener("popstate", stateChangeHandler); 

Дальнейшее чтение: MDN popstate reference

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

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