Итак, насколько я понимаю, вы не можете использовать объект истории, потому что, если они перепрыгнут через главу и нажмут кнопку «Назад», они вернутся туда, где были, прежде чем перейти на страницу назад, а не назад на страницу.
Так чтоЧтобы исправить это, нужно сохранить страницы глав в массиве EG
let currentPage = 0;
let currentChapter = 0;
let totalPages = 97;
let chapters = [0,3,25,51,63]
let nextPage = () => {
if(currentPage+1 > totalPages) return;
currentPage++;
if(currentPage > chapters[currentChapter]){
currentChapter++;
}
}
let prevPage = () => {
if(currentPage == 0) return;
currentPage--;
if(currentPage < chapters[currentChapter]){
currentChapter--;
}
}
let nextChapter = () => {
if(currentChapter+1 > chapters.length) return;
currentChapter++;
currentPage = chapters[currentChapter]
}
let previusChapter = () => {
if(currentChapter == 0) return;
currentChapter--;
currentPage = chapters[currentChapter]
}
. Таким образом, вы можете использовать pushState для изменения URL-адреса на основе currentPage
в sll методов, а затем вы можетеcurrentChapter
при загрузке страницы currentPage
это позволит выполнить обновление.