如何解决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 举报,一经查实,本站将立刻删除。