You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MutationObserver监听9GAG页面#main元素未触发函数求修复

修复9GAG页面滚动加载时MutationObserver未触发的问题

你的代码无报错但无法触发函数,核心原因是9GAG的滚动加载内容并非直接作为#main的直接子节点添加,而是插入到#main内部的深层嵌套容器中。当前配置仅监听#main的直接子节点变化,无法捕获深层节点的新增操作。

解决方案

修改MutationObserver的配置选项,添加subtree: true,让观察者监听目标元素的整个DOM子树(包括所有后代节点),同时增加节点存在判断提升代码稳健性:

function adbut() {
  console.log("hd");
}

const observerOptions = {
  childList: true,
  subtree: true // 关键:监听目标元素及其所有后代节点的变化
};

const mainid = document.querySelector("#main");
if (mainid) { // 确保目标节点存在再初始化观察者
  const observer = new MutationObserver(adbut);
  observer.observe(mainid, observerOptions);
}

关键说明

  • subtree: true:开启后,观察者会监控#main下所有层级的节点变化,覆盖滚动加载时新增内容的插入场景。
  • 节点存在判断:虽然你确认#main已存在,但添加if (mainid)可以避免页面结构临时变动时的潜在报错。

内容的提问来源于stack exchange,提问作者Randy VU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:54:56