Как на самом деле использовать history.js на моем сайте
Я прочитал все сообщения о history.js на stackoverflow, в том числе,это, это а такжеэто и посмотрелисходный код но, как новичок в javascript / jquery, у меня возникли проблемы с выяснением, как на самом деле реализовать поддержку html 5 истории и запасной вариант для поддержки html4-браузеров, таких как ie8 / 9. Поскольку я могу оценить преимущества UX от представления последовательных URL-адресов в максимально возможной степени, то, как это решает глубокие ссылки и позволяет создавать закладки, которые я хочу реализовать, но я немного теряюсь, пытаясь фактически использовать это на своем сайте.
После добавления скрипта history.js на мою страницу
Код для изменения, как я понимаю, это:
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, чтобы помочь мне в этой точке, учитывая мою новизну в кодировании).
Я читал этостатья о динамической загрузке контента и попытке реализовать на моем сайте (я могу заставить этот код работать, но я знаю, что он не очень хорошо работает в ie8 / 9), но у меня возникли проблемы при попытке выяснить, как объединиться с history.js
Кроме того, во-вторых, я пытаюсь выяснить, как history.js играет с modernizr?
Является ли он заменой для modernizr.history (где он выполняет тестирование и если нет поддержки .js, возвращается к обычной загрузке страницы) или он будет работать следующим образом:
if (Modernizr.history) {
//Code goes here that works if it's 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... ?
}