Как обнаружить изменение URL в JavaScript - PullRequest
110 голосов
/ 17 июня 2011

Как я могу проверить, изменился ли URL в JavaScript? Например, веб-сайты, такие как GitHub, которые используют AJAX, будут добавлять информацию о странице после символа #, чтобы создать уникальный URL-адрес без перезагрузки страницы. Как лучше всего определить, изменяется ли этот URL-адрес?

  • Повторно ли вызывается событие onload?
  • Есть ли обработчик событий для URL?
  • Или URL должен проверяться каждую секунду, чтобы обнаружить изменение?

Ответы [ 13 ]

1 голос
/ 06 января 2016

Посмотрите на функцию выгрузки jQuery.Он обрабатывает все вещи.

https://api.jquery.com/unload/

Событие unload отправляется элементу окна, когда пользователь уходит со страницы.Это может означать одно из многих.Пользователь мог щелкнуть ссылку, чтобы покинуть страницу, или ввести новый URL-адрес в адресной строке.Кнопки «Вперед» и «Назад» активируют событие.Закрытие окна браузера вызовет событие.Даже перезагрузка страницы сначала создаст событие выгрузки.

$(window).unload(
    function(event) {
        alert("navigating");
    }
);
0 голосов
/ 26 января 2017

Вы начинаете новый setInterval при каждом вызове, не отменяя предыдущий - возможно, вы только хотели иметь setTimeout

0 голосов
/ 01 мая 2016
window.addEventListener("beforeunload", function (e) {
    // do something
}, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...