为 DOM 完全加载(包括延迟加载)添加文档侦听器
Add a document listener for when DOM completely loads including lazy loading
我正在创建一个 Chrome 扩展,我想准备一个仅在 API 响应在页面上呈现数据后出现的 属性。
我正在使用:
document.querySelector('td[data-testid="total-amount"]')?.innerHTML.trim()
但该信息仅在 10 秒后加载,并且 returns 在代码延迟加载之前未定义。我担心延迟,因为它需要很长时间,用户很可能会在我们阅读信息之前离开。
我建议使用 MutationObserver. First find any parent not-lazy-loaded element (the closer to your target the better). Then search for 。
更简单(但可能效率较低)的解决方案是每隔 n
(可能是 1?)秒查找 td[data-testid="total-amount"]
,直到找到。一旦找到,您可以使用条件递归 setTimeout or setInverval with cleanInterval。
如果整个或大部分页面是动态加载的并且其结构非常复杂,我会推荐第二个选项 - 因为它甚至可能在性能方面表现更好。
我正在创建一个 Chrome 扩展,我想准备一个仅在 API 响应在页面上呈现数据后出现的 属性。
我正在使用:
document.querySelector('td[data-testid="total-amount"]')?.innerHTML.trim()
但该信息仅在 10 秒后加载,并且 returns 在代码延迟加载之前未定义。我担心延迟,因为它需要很长时间,用户很可能会在我们阅读信息之前离开。
我建议使用 MutationObserver. First find any parent not-lazy-loaded element (the closer to your target the better). Then search for
更简单(但可能效率较低)的解决方案是每隔 n
(可能是 1?)秒查找 td[data-testid="total-amount"]
,直到找到。一旦找到,您可以使用条件递归 setTimeout or setInverval with cleanInterval。
如果整个或大部分页面是动态加载的并且其结构非常复杂,我会推荐第二个选项 - 因为它甚至可能在性能方面表现更好。