2010-12-10 8 views

Respuesta

3

Usted es capaz de verificar evento de carga iframe

onLoad="alert(this.contentWindow.location);" 

o en jQuery:

$('iframe#yourId').load(function() { 
    alert("the iframe has been loaded"); 
}); 
+11

carga de un iframe no tiene nada que detectar un clic en un enlace en el iframe – epascarello

+1

¿por qué? Cuando hace clic en el enlace, la ubicación del iframe cambiará, por lo que se debe activar el evento iframe load. – Anton

+3

En realidad, eso funcionó para mí, porque no necesito detectar cada clic dentro del marco, pero hago clic en el enlace que es igual al cambio de ubicación del marco flotante. EDITAR: Solo puedo aceptar esta respuesta, no puedo votar por alguna razón (no voté por timo). – Paul

8

Suponiendo que tiene un iframe con ID "myIframe", y el iframe proviene del mismo dominio que el documento principal, lo siguiente detectará un clic en cualquier parte del documento. Esto también funciona cuando el documento es editable, que utilizando la propiedad del documento onclick ¿No:

function iframeClickHandler() { 
    alert("Iframe clicked"); 
} 

var iframe = document.getElementById("myIframe"); 
var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 

if (typeof iframeDoc.addEventListener != "undefined") { 
    iframeDoc.addEventListener("click", iframeClickHandler, false); 
} else if (typeof iframeDoc.attachEvent != "undefined") { 
    iframeDoc.attachEvent ("onclick", iframeClickHandler); 
} 
+0

esto supone que el iframe no es un dominio cruzado, creo. – erikvold

+0

@erikvold: Correcto. He agregado una nota a mi respuesta. –

Cuestiones relacionadas