querySelector随机导致Chrome扩展程序内容脚本的加载功能失败

问题描述

我正在尝试创建一个Chrome扩展程序来与twitch网站进行交互。

到目前为止,它在大多数时间都有效,但是随机出现错误。

这是内容脚本的代码:

var observer = new MutationObserver(function(mutations) {
 mutations.forEach(function(mutation) {
   for (var i = 0; i < mutation.addedNodes.length; i++){
    if (mutation.addedNodes[i].nodeType == 1){
        if (mutation.addedNodes[i].hasAttribute("aria-describedby")){
          mutation.addedNodes[i].querySelector("button").click();
        }
    }
   }
 });
});

window.addEventListener('load',function () {
    node = document.querySelector("[data-test-selector='community-points-summary']");
    observer.observe(node,{ subtree: true,childList: true });
});

问题有时是“节点”为空,这会导致错误:

Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.

我的假设是页面未完全加载,然后querySelector无法获取DOM。但是我不明白为什么会这样,因为我在“加载”功能中,只有在页面完全加载后才应触发。

调试起来有点困难,因为它大多是随机的。如果我刷新了抽动页面,则脚本可以工作。我觉得如果页面在缓存中,就没有这个问题,但是我不确定。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)