Emptyform
@Emptyform

Как сделать обработку события изменения URL?

Положим, есть небезызвестный сайт https://karmazzin.gitbooks.io/eloquentjavascript_r...
Как к ней прикрутить обработку события изменения адресной строки?
Т.е. кликаем на название главы слева и в ответ, скажем, выскакивает alert.

ps. варианты, которые я нагуглил, но не работают:
$(window).unload(
    function(event) {
      alert("$(window).unload");
    }
);
window.onhashchange = function() {
  alert('window.onhashchange');
}
window.onbeforeunload = function () {
  alert('window.onbeforeunload');
}


upd. Дело, как вы понимаете, не в данном конкретном сайте, он так, для наглядности приведен
upd2. Поясню зачем это мне - пишу расширение для хрома, и мне нужно перехватывать изменение URL на страницах, где клики на ссылки обрабатываются аяксом, ну и соответственно не происходит перезагрузки страницы, но при этом URL меняется.

Из работающего пока нашел вариант через навешивание обработчика на таймаут, но как-то это не фэншуй, на мой вкус:
(function() {
    let oldHref = window.location.href;

    setInterval(function() {
        if (oldHref !== window.location.href) {
            alert("HREF CHANGED - new has" + window.location.href);
            oldHref = window.location.href;
        }
    }, 100);
})();
  • Вопрос задан
  • 1665 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sanasol
@Sanasol Куратор тега JavaScript
нельзя просто так взять и загуглить ошибку
Посмотреть код сайта по ссылке и исследовать как он работает?
Да не, бред какой-то.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы