Estoy creando una extensión que edita un elemento en una página, pero solo funciona si el elemento está en la página cuando se carga (con el sitio web que estoy usando, nunca sucederá), así que quiero obtener un evento si un div con la identificación de "427" aparece.
código:
var card = !!document.getElementById(427); console.log(card); if (card = true) { var card = document.getElementById(427) var cardimg = card.children.item(9) cardimg.setAttribute("style", 'background: transparent url("images/cards/Ultimate_Recipe.png") no-repeat scroll 0% 0%;') };Podría usar MutationObserver , pero debe tener cuidado con el uso de la memoria:
const onMutation = () => { const element = document.getElementById(427) if (element) { observer.disconnect() elementIsReady(element) } } const observer = new MutationObserver(onMutation) observer.observe(document.body, {childList: true, subtree: true})También podría usar Promise , consultando cada x ms:
new Promise(async (resolve) => { let element while (!(element = document.getElementById(427))) await new Promise(r => setTimeout(r, 200)) resolve(element) }).then(elementIsReady)