А, собственно, как? Перепробовал разные решения, что предлагают через поиск в гугл, ни одно не работает. Вот пример:
function e(){
console.log("CHANGE:");
console.log(document.location.href);
}
window.addEventListener('hashchange', e);
window.addEventListener('popstate', e);
window.addEventListener('locationchanged', e);
e();
Не срабатывает. Лучшее тут это событие popstate, про него вот что пишут:
Цитата:
|
Это событие срабатывает при переход от одного элемента истории к другому. При этом history.pushState() и history.replaceState() не приводят к вызову этого события. Только нажатие кнопок вперед/назад в браузере, либо вызов history.back() или аналогичной функции в Javascript.
|
И да, оно срабатывает при нажатии кнопок в браузере, но не срабатывает, если адрес меняется из скриптов.
Есть ли адекватное решение, как поймать момент изменения адреса страницы? Можно, конечно, в таймере отслеживать, и такое тоже предлагают, но это как-то не очень выглядит...