Как получить текущий URL перед событием popstate
Необходимо получить URL который был до того, как пользователь нажал на кнопку back в браузере. Я слушаю событие "popstate" но выходит что я работаю уже с "новой страницей" и url уже новый.
window.addEventListener ("popstate", function (e) {
console.log(location.pathname.split("/").pop());
console.log('Тут писать предыдущий url');
}
В итоге: консоль даёт мне новую концовку url.
Сделать так не вариант:
let endpath = location.pathname.split("/").pop();
Потому, что history.pushState вызывается на странице много раз.
Думаю над вариантом собрать все посещённые "страницы" в массив и просто шагать по нему в обратном порядке. Но вдруг есть более лаконичное решение?
Ответы (2 шт):
Так можно же запоминать текущий url и с которого пришли на стр, и сравнивать их с учётом get или без, как больше подходит... Или нет?
Решение оказалось простое, решил передавать старую страницу при событииhistory.pushState
history.pushState({'page':currentLoc,'oldPage':endpath}, "Title", currentLoc);
Затем можно позвать с помощью
console.log(history.state.oldPage);