Tengo una página Next.JS que carga un script externo. Este script externo modifica el DOM (específicamente coloca un div y un iframe en la página), es un widget de chat. El div que se agrega se convierte en el último elemento secundario del cuerpo, y estoy tratando de capturarlo con document.body.lastChild . Estoy ejecutando la lógica en la propiedad onLoad del componente de script de Next. El problema es que el tiempo parece estar fuera de lugar. Está agarrando al último hijo antes de que se agregue el div, verificado mediante el registro.
No estoy seguro de por qué... Intenté ejecutar la lógica en el oyente de carga de la ventana, en el oyente de carga del documento, dentro de useEffect, etc. ¿Alguna idea? Estoy tratando de agarrar el div para poder colocarlo de manera diferente, por contexto. Aparece en la parte inferior derecha de la pantalla de forma predeterminada.
<Script id="scriptid" src="scriptsource" onLoad={() => { functionFromScript(); // my logic to grab the newly added div from the above function document.onload = () => { console.log('All loaded') const chatDiv = document.body.lastChild; console.log(chatDiv) chatDiv.style.position = 'relative'; }; }}> </Script>