Я прочитал все сообщения об истории .js о stackoverflow, включая this, this и this и посмотрел исходный код, но как новичок в javascript/jquery я У меня возникли проблемы с выяснением того, как на самом деле реализовать поддержку html 5 и поддержку резервного копирования для поддержки html4-браузеров, таких как ie8/9. Поскольку я могу оценить преимущества UX в представлении согласованного URL как можно больше, как это решает глубокую привязку и позволяет закладок, которые я хочу реализовать, но я немного теряюсь при попытке фактически использовать это на своем сайте.
После добавления history.js script на мою страницу
Код для изменения, как я понял, это:
function(window,undefined){
// Prepare
var History = window.History; // Note: We are using a capital H instead of a lower h
if ( !History.enabled ) {
// History.js is disabled for this browser.
// This is because we can optionally choose to support HTML4 browsers or not.
return false;
}
// Bind to StateChange Event
History.Adapter.bind(window,'statechange',function(){ // Note: We are using statechange instead of popstate
var State = History.getState(); // Note: We are using History.getState() instead of event.state
History.log(State.data, State.title, State.url);
});
// Change our States
History.pushState({state:1}, "State 1", "?state=1"); // logs {state:1}, "State 1", "?state=1"
History.pushState({state:2}, "State 2", "?state=2"); // logs {state:2}, "State 2", "?state=2"
History.replaceState({state:3}, "State 3", "?state=3"); // logs {state:3}, "State 3", "?state=3"
History.pushState(null, null, "?state=4"); // logs {}, '', "?state=4"
History.back(); // logs {state:3}, "State 3", "?state=3"
History.back(); // logs {state:1}, "State 1", "?state=1"
History.back(); // logs {}, "Home Page", "?"
History.go(2); // logs {state:3}, "State 3", "?state=3"
})(window);
Является ли //Change our states
, где весь новый код идет, поскольку этот код просто дает примеры элементов управления историей?
Или я должен писать свой собственный код вместо всего этого блока кода (я использую jquery, чтобы помочь мне в этот момент, учитывая мою новизну в кодировании).
Асло, во-вторых, я пытаюсь выяснить, как history.js играет с modernizr?
Является ли это заменой для modernizr.history(там, где он выполняет тестирование, и если нет поддержки .js возвращается к типичной загрузке страницы), или он будет работать следующим образом:
if (Modernizr.history) {
//Code goes here that works if it HTML 5 Browser with .history support? I know some HTML5 browsers deal with .history oddly (read buggy) so what happens in those cases?
} else {
//code from above goes here? with function(window, undefined){...etc... ?
}