Выполнение функции после полной загрузки страницы в расширении chrome внутри MutationObserver - PullRequest
0 голосов
/ 09 марта 2020

Я использую следующий фрагмент кода для обнаружения изменений в 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. Я не уверен, что лучший способ достичь этого, или какое событие я должен слушать. Любые мысли приветствуются, и вы можете обратиться за дальнейшими разъяснениями, если это необходимо!

...