如何在 Chrome 扩展中从网站获取完整加载的 HTML 源代码

How to get full loaded HTML source from web site in a Chrome Extension

我需要在我的扩展中 DevTool 控制台的元素 window 中找到的相同源。我尝试使用内容脚本

var text = document.documentElement.innerHTML;

在从 chrome.tabs.onUpdated.addListener 捕获到 "complete" 状态后注入,但我只收到 html 代码,没有动态创建的内容。

特别是我希望我的扩展找到所有动态添加的 "div"。

任何帮助将不胜感激!

complete 事件在加载初始页面内容后触发。它与动态生成的内容无关,否则它必须无限期地等待,因为以后可能总是会添加更多内容。

如果您对特定元素感兴趣,可以使用setTimeout 定期轮询该元素。像这样:

function getElement() {
    return new Promise(function(res, rej) {
        var interval = setInterval(function() {
            var elm = document.getElementById('the-element-you-want');
            if(elm){
                clearInterval(interval);
                res(elm);
            }
        }, 10);
    });
}

另一种选择是使用 MutationObserver 来检测何时创建了所需的元素。