Incrusté un iFrame en mi sitio web y el iFrame proviene del mismo dominio que el sitio web. Observé el contenido dentro del iFrame si cambia y luego hago algo como reacción. Lo codifiqué hace unos 8 meses y de repente ya no funciona. Realmente no creo que haya hecho ninguna actualización que pueda hacer que el código ya no funcione.
El mensaje de error que recibo es Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
Así que lo busqué en Google y parece que el selector jQuery no funciona como se esperaba porque creo que el contenido del iFrame no está completamente cargado.
Aquí está mi código:
$(document).ready(function() { $('iframe').on('load', function() { checkIframeLoaded(); function checkIframeLoaded() { var iframe = document.getElementById('test'); var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; if(iframeDoc.readyState == 'complete') { //this was original coded //observer.observe($('iframe').contents().find('.transition-group').first()[0], { observer.observe(iframe.contentWindow.document.getElementsByClassName('transition-group')[0], { childList: true, subtree: true }); return; } else { window.setInterval(checkIframeLoaded, 1000); } } )}; )};Agregué la función checkIframeLoaded después de ver el error, originalmente solo estaba el observador. parte del código. ¿Alguna idea de cómo puedo hacer que esto funcione? Creo que tengo que esperar hasta que el contenido termine de cargarse, pero creo que ya lo codifiqué.
Editar: al actualizar el navegador, a veces el mensaje de error desaparece y otras veces no. Así que diría que tiene algo que ver con el proceso de carga.