BotBeta
Admin
Sigma
Verificado
Verificación en dos pasos activada
¡Usuario popular!
Suscripción a IA
Lamento que sigas teniendo problemas. Vamos a simplificar y asegurarnos de que elsigue igual no me detecta los nuevos octumpro
MutationObserver esté configurado de manera que pueda detectar los elementos correctamente. Aquí te dejo una versión revisada del código, con enfoque en la observación de cambios en el contenedor y la detección efectiva de nuevos iframes.### Código JavaScript Ajustado
Asegúrate de que tu HTML siga teniendo la estructura que mencionaste y prueba con el siguiente script:
JavaScript:
document.addEventListener("DOMContentLoaded", function() {
const options = {
root: null,
threshold: 0.4
};
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
const iframe = entry.target;
if (entry.isIntersecting) {
const dataId = iframe.getAttribute('dataid');
console.log("Iframe visible:", dataId);
if (iframe.src !== iframe.getAttribute("data-src")) {
iframe.src = iframe.getAttribute("data-src");
iframe.onload = function() {
const iframeWindow = iframe.contentWindow;
const video = iframeWindow.document.getElementById('video-id'); // Asegúrate de que esto sea correcto
if (video) {
pauseAllVideos();
video.play().catch(error => {
console.error("Error al intentar reproducir el video:", error);
});
}
};
}
observer.unobserve(iframe); // Dejar de observar este iframe
}
});
}, options);
function pauseAllVideos() {
const iframes = document.querySelectorAll(".octumpro[data-src]");
iframes.forEach(iframe => {
const iframeWindow = iframe.contentWindow;
const video = iframeWindow.document.getElementById('video-id'); // Cambia 'video-id' según sea necesario
if (video && !video.paused) {
video.pause();
}
});
}
// Selecciona el contenedor adecuado
const targetNode = document.querySelector(".sessim"); // Cambia esto según la estructura de tu HTML
// Configura el MutationObserver
const mutationObserver = new MutationObserver((mutations) => {
mutations.forEach(mutation => {
mutation.addedNodes.forEach(node => {
if (node.nodeType === 1) {
// Verificar si se han añadido nodos hijos que contengan .octumpro
const iframes = node.querySelectorAll(".octumpro[data-src]");
if (iframes.length) {
iframes.forEach(iframe => {
console.log("Nuevo iframe detectado:", iframe);
observer.observe(iframe); // Empezar a observar el nuevo iframe
});
}
}
});
});
});
// Comienza a observar el contenedor
mutationObserver.observe(targetNode, {
childList: true,
subtree: true // Para observar cambios en los nodos secundarios
});
// Observa todos los iframes que ya están presentes en el DOM
const initialIframes = document.querySelectorAll(".octumpro[data-src]");
initialIframes.forEach(iframe => {
observer.observe(iframe);
});
});
### Recomendaciones para la Implementación
1. Contenedor Correcto: Asegúrate de que
<cite> o su contenedor principal esté accesible desde el selector .sessim, o ajusta el selector para que esté más cerca del elemento que realmente observa los cambios.2. Verificar por Agregados: Esta nueva implementación revisa si se añaden nodos y luego busca iframes dentro de esos nodos.
3. Depuración en la Consola: Observa la consola del navegador y busca mensajes como “Nuevo iframe detectado:” y "Iframe visible:". Esto ayuda a ver si tus iframes se están detectando.
4. Prueba Agregando Iframes Manualmente: Asegúrate de tener un contexto donde se agreguen los nuevos iframes y prueba eso manualmente para verificar que el script realmente se activa.
### Consideraciones Finales
Si después de estos ajustes sigues sin poder detectar los nuevos iframes, te recomendaría:
- Comprobar si hay algún error en la consola del navegador.
- Ver si los nuevos elementos realmente están siendo creados dentro del contenedor esperado.
- Probar a simplificar aún más la estructura de prueba, asegurando que se estén insertando nuevos iframes directamente para evaluar cómo el script responde.
Si necesitas más ayuda, no dudes en compartir detalles adicionales, como el entorno en el que se están añadiendo esos iframes (¿es a través de un evento, un click en un botón, etc.?). Esto podría brindar más contexto para hallar una solución.

