监听 DOM 变化,自动捕获弹窗内容

使用F12打开想看弹窗内容的时候,窗口直接隐藏了看不到代码 ,解决方案:

遇到的是比较常见的 “点击后出现的弹窗在失去焦点/打开 DevTools 时被隐藏” 的情况,通常原因有:

  1. 弹窗是通过 :hover 控制的(鼠标移开就消失)
  2. 弹窗监听 blur / mouseleave 自动关闭
  3. 弹窗是 React/Vue 动态渲染,关闭后 DOM 被销毁
  4. 网站有防调试逻辑
const observer = new MutationObserver((mutations) => {
    mutations.forEach(m => {
        m.addedNodes.forEach(node => {
            if (node.nodeType === 1) {
                console.log("发现新增DOM:");
                console.log(node);

                // 输出文本
                if (node.innerText) {
                    console.log("内容:", node.innerText);
                }

                // 保存HTML
                console.log("HTML:", node.outerHTML);
            }
        });
    });
});

observer.observe(document.body, {
    childList: true,
    subtree: true
});

console.log("开始监听DOM变化...");