首页 > 解决方案 > 页面在 MutationObserver 内的 chrome 扩展中完全加载完成后执行功能

问题描述

我正在使用以下代码片段来检测window.location.hrefHulu(以及其他流媒体平台)的 Chrome 扩展内部的变化 我需要在 Hulu 首次打开时执行一次 myFunction ,随后每次由于单击其中一个而导致 URL 发生变化导航栏中的链接。

(礼貌https://stackoverflow.com/a/46428962/6153940

    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 的导航菜单中选择了一种类型之后,除了 load 事件之外不会触发,DOMContentLoaded 事件也不会触发。我不确定实现这一目标的最佳方法是什么,或者我应该听哪个事件。任何想法表示赞赏,如有必要,请随时要求进一步澄清!

标签: javascriptgoogle-chrome-extensionmutation-observers

解决方案


推荐阅读