Я пытаюсь использовать API истории, чтобы позволить мне использовать кнопки назад и вперед при загрузке контента динамически. Вот код, который я использую, и пример объекта состояния, который я использую.Как перезагрузить страницу при реализации API истории
Как я использую объект состояния и pushstate()
var stateObj = {Content : homeSection.innerHTML, "Product" : detail.Name, Title : title.innerHTML, Section:"dynamicArticle"};
window.history.pushState(stateObj, "", detailName);
window.addEventListener('popstate', function(event) {
updateContent(event.state);
});
Функция используется:
function updateContent(stateObject) {
if (stateObject){
homeSection = document.getElementById(stateObject.Section);
homeSection.innerHTML = stateObject.Content;
title.innerHTML = stateObject.Title;
var items = document.querySelectorAll(".homeItem");
if(items){
for(i=0; i<items.length; i++){
items[i].addEventListener("click", selectedProduct);
}
}
checkoutButton = document.getElementById('checkoutButton');
if(checkoutButton){
checkoutButton.addEventListener('click', function(){
displayCheckout();
});
}
basketButton = document.getElementById("basketButton");
quantityInput = document.getElementById("productQuantity");
if(basketButton){
basketButton.addEventListener('click', clicked);
basketButton.addEventListener('click', updateBasketNumber);
quantityInput.value = "1";
}
searchSort = document.getElementById("sort");
if(searchSort){
var items = document.querySelectorAll(".searchResult");
for(i=0; i<items.length; i++){
items[i].addEventListener("click", selectedProduct);
}
searchSort.addEventListener("change", function(){
sort = searchSort.value;
searchItem(e, sort);
});
}
}
else{
return;
}
}
То, что я борюсь с, что если я перейти к одной из страниц с помощью pushState()
и I попробуйте перезагрузить страницу, так как вы ожидаете, что страница не будет найдена.
Я спрашиваю, есть ли способ разрешить перезагрузку или для кого-то, чтобы перейти к URL без него дает ошибку, и дает правильное содержимое
Вам необходимо настроить веб-сервер, чтобы он всегда служил вашей статической странице HTML, содержащей этот контент. –