waitForElement

Espera a que un elemento DOM aparezca usando MutationObserver.

#browser #dom #async #utility
export const waitForElement = (selector: string): Promise<Element> =>
new Promise((resolve) => {
const existing = document.querySelector(selector);
if (existing) {
return resolve(existing);
}
const observer = new MutationObserver(() => {
const el = document.querySelector(selector);
if (el) {
observer.disconnect();
resolve(el);
}
});
observer.observe(document.documentElement, {
childList: true,
subtree: true,
});
});
// Usage
const modal = await waitForElement('.modal');
modal.classList.add('visible');

Comparte este snippet

Comentarios