Как определить загрузку каждой страницы? - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь поймать каждую загрузку страницы на https://forum.vivaldi.net

//==UserScript==
//@include https://forum.vivaldi.net/*
//==/UserScript==
(function () {
    window.addEventListener('DOMContentLoaded', function () {
        alert('A new page is loaded');
    });
})();

Это будет срабатывать каждый раз, когда я нажимаю ввод в адресной строке.

Но ничего не происходит, когда я перехожу с одной страницы на другую в форуме.

Почему DOMContentLoaded не запускается при каждой загрузке страницы?

1 Ответ

1 голос
/ 30 марта 2020

Этот сайт использует Ajaxify для автоматического преобразования всех внутрисайтовых ссылок в запросы XHR. DOMContentLoaded не запускается между страницами, потому что означает нет загрузки новой страницы - просто загрузка контента в фоновом режиме и вставка на текущую страницу.

Вы можете увидеть это в действии: следуя действиям на вкладке Сеть инструментов разработчика вашего браузера.

Что касается того, как отследить загрузку каждой страницы в этом случае, посмотрите события , предоставляемые Ajaxify .

...