Я новичок в html5 и history.js, все еще пытаясь понять концепцию history.js. два вопроса здесь.
history.js используется для изменения URL-адреса в адресной строке без обновления страницы? (например, используя хеш для манипулирования URL-адресом)
Я сделал простой код, используя history.js(вот моя скрипка)
URL страницы 1 - http://mysite.com?id=1,2,3
когда нажата одна из кнопок ниже, код JS скроет кнопку, и он удалит идентификатор из URL-адреса и с помощью history.js изменит URL-адрес в адресной строке
<input type="button" value="delete id 1" data-remove-id="1" class="remove" />
<input type="button" value="delete id 2" data-remove-id="2" class="remove" />
<input type="button" value="delete id 3" data-remove-id="3" class="remove" />
вопрос в том, что когда я нажимаю кнопку "Назад", url изменяется правильно, но как я могу показать скрытую кнопку? или как обновить страницу? или я использую ajax? Какова наилучшая практика?
Да, это позволяет вам сохранять текущую информацию о состоянии (если хотите) и вставлять текущий url в историю и загружать новый url в строку url. Он не перезагружает страницу. Предполагается, что вы делаете что-то с javascript (вызов AJAX или какой-либо другой код) на клиенте, который соответствует изменению URL.
Ваша кнопка назад и history.js не отменит код JavaScript, который вы сделали. Вы должны использовать AJAX для перезагрузки страницы для этого предыдущего URL-адреса, который должен был прочитать скрытую кнопку. Таким образом, незначительный нюанс - нажатие кнопки "Назад" не отображает кнопку, вместо этого она воссоздает кнопку из исходного кода, который вы получаете от другого вызова AJAX.
Обновить:
Вы можете связать обработчик с событием window.onpopstate.
window.onpopstate = function(event) {
// your code...
}