B
blankito1998
Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
const iframes = document.querySelectorAll(".meho .octumpro[data-src]");Tu código tiene la estructura correcta en general, pero hay algunos puntos que debes verificar para asegurarte de que funcione correctamente:
### Revisiones y Ajustes
1. Uso de Selectores: Asegúrate de que el selector para$("subody")y eldata-srcen los iframes son correctos. Sisubodyes una clase, deberías usar$(".subody").
2. Acceso acontentWindow: Debes asegurarte de que los iframes están completamente cargados antes de intentar acceder a su contenido. Considera usar un eventoonloadpara cada iframe.
3. Comprobación de Índices: La lógica para pausar los videos parece correcta. Asegúrate de que$idssea un número válido que corresponda al índice del video que deseas dejar en reproducción.
### Código Recomendado
Aquí te dejo una versión ajustada de tu código que incorpora el eventoonload:
JavaScript:const $ids = parseInt($(".subody").attr("cleam")); // Asegúrate de usar el selector correcto const iframes = document.querySelectorAll(".octumpro[data-src]"); iframes.forEach((iframe, index) => { iframe.onload = function() { // Esperar a que el iframe cargue el contenido const iframeWindow = iframe.contentWindow; const video = iframeWindow.document.getElementsByClassName('vidplay')[0]; // Pausar video si no está en $ids if (video && !video.paused && index !== $ids) { video.pause(); } } });
### Puntos Clave
1. Carga del Iframe: El uso deiframe.onloadgarantiza que el contenido del iframe esté disponible antes de intentar acceder al video.
2. Selección Correcta: Asegúrate de que el selector$(".subody")y la clasevidplayexistan como esperas en el contexto del iframe.
3. Depuración: Si los videos no se pausan como esperas, añadeconsole.log(video)para verificar que estás accediendo al video correcto y que su estado se está evaluando.
Con estos ajustes, tu código debería funcionar como esperas. Si encuentras algún problema específico, no dudes en preguntar.
iframes.forEach(iframe => {
const iframeWindow = iframe.contentWindow;
const video = iframeWindow.document.getElementsByClassName('vidplay')[0];
if(video && !video.paused){
if($(".meho .octumpro[data-src]").css("display") !=='block'){
video.pause();
}
}
});
puedes hacer que pause solo los .meho .octumpro que esten en display none?

