Autor Zpráva
Anonymouz
Profil
Chci něco spustit po načtení prvku, který se načítá s prodlevou. Posílám ukázku jak jsem na to šel Živá ukázka Ukázka mi bohužel funguje pouze pokud je dlouhá prodleva načtení HTML elementu, ne pokud se načte pomocí JS.

Jde to nějak vyřešit přes promise, nebo to musím řešit taky přes setTimeout?
Radek9
Profil
Anonymouz:
Brání ti něco přidat onload i tomu dynamicky vytvářenému obrázku?
Anonymouz
Profil
Dostanu se pouze do kódu za čarou //----. Nedostanu se do html ani do js kódu který ten element vytváří.
Radek9
Profil
Anonymouz:
Pokud víš, do jakého rodičovského prvku bude obrázek vložen, tak můžeš zkusit použít MutationObserver.

const observer = new MutationObserver(() => {
  const img = document.querySelector('img')
  if (!img.onload) {
    g3_waitForToLoad(img).then(() => console.log('obrazek se načetl'))
  }
})
observer.observe(document.body, { childList: true }) // tady ideálně něco konkrétnějšího než document.body

Případně to prostě dát na nějaký nadřazený prvek (třeba právě document.body) a použít ještě subtree:
observer.observe(document.body, { subtree: true, childList: true })

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0