Estoy tratando de capturar el evento del mouse hacia abajo para el div que contiene el iframe. ¿Hay alguna forma de hacerlo? Parece que el iframe está capturando el evento y el evento mousedown no se activa para el div.
jQuery(".test").on("mousedown", ()=> console.log("Test")) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="test"> <a href="/" >Test</a> </div> <div class="test"> <iframe src="https://www.google.com/" ></iframe> </div>Hasta donde yo sé, la única forma en que podrá interactuar con el contenido de iframe a través de javascript (y css también) es si el alcance del dominio es el mismo. Ejemplo- Demostración
Cualquier interacción entre dominios hoy en día requiere una configuración CORS para permitir la interacción entre los diferentes dominios.
Por esa razón, diría que lo que está tratando de lograr ya no es posible (excepto si tiene el control de ambos dominios).
Logré encontrar una solución, no la mejor pero me funciona
jQuery(window).on('blur', function() { if (document.activeElement === document.querySelector('iframe')) { console.log('clicked on iframe') } }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="test"> <iframe id="testiframe" src="https://www.google.com/" ></iframe> </div>Como está usando jQuery, puede usar el método de contents() , entonces:
jQuery(".test").contents().on("mousedown", ()=> console.log("Test"))Sin embargo, puede ser un poco incompleto interceptar un clic en la página de otra persona. ¿Qué estás haciendo con el clic?