Показать сообщение отдельно
  #6 (permalink)  
Старый 22.12.2023, 10:31
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

А, собственно, как? Перепробовал разные решения, что предлагают через поиск в гугл, ни одно не работает. Вот пример:

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.
И да, оно срабатывает при нажатии кнопок в браузере, но не срабатывает, если адрес меняется из скриптов.

Есть ли адекватное решение, как поймать момент изменения адреса страницы? Можно, конечно, в таймере отслеживать, и такое тоже предлагают, но это как-то не очень выглядит...
Ответить с цитированием