Я использую следующий фрагмент кода для обнаружения изменений в window.location.href
внутри Chrome расширения для Hulu (среди других потоковых платформ). Мне нужно выполнить myFunction один раз, когда Hulu открывается впервые, а затем каждый раз, когда URL-адрес изменяется в результате нажатия на одну из ссылок в навигационной панели.
(любезно предоставлено { ссылка })
var oldHref = document.location.href;
window.addEventListener("load", function() {
########################################
myFunction()
########################################
var bodyList = document.querySelector("body"),
observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (oldHref != document.location.href) {
oldHref = document.location.href;
####################################
myFunction() once content has completely loaded
####################################
}
});
});
var config = {
childList: true,
subtree: true
};
observer.observe(bodyList, config);
});
Моя проблема: я хочу выполнить myFunction
только после полной загрузки страницы, поэтому что-то вроде window.addEventListener("load", myFunction)
за исключением того, что событие загрузки не запускается после того, как жанр был выбран из меню навигации в Hulu, и ни одно из них не является событием DOMContentLoaded. Я не уверен, что лучший способ достичь этого, или какое событие я должен слушать. Любые мысли приветствуются, и вы можете обратиться за дальнейшими разъяснениями, если это необходимо!