Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Cómo detectar clicks en iframe

5 septiembre, 2016
stackoverflow

En esta entrada os traigo un pedazo de código que puede ser útil para detectar clicks en iframes.
Lo hace, lo hace, seguro que muchas veces has leido o escuchado que no se puede hacer.

Cómo puedes ver con este código lo detectará, y así podremos controlar si se hace click en un iframe.

La mayoría de las redes de anunciantes que pagan por click utilizan iframes, y con este mini script podemos detectar si se hacen click dentro del iframe.

Esta función está hecha en javaScript, que tendrás que subir y adaptar a tu código de tu página web.

 
stackoverflow

El código lo encontré en la web StackOverflow, después lo adapté a distintos proyectos, aquí está el código en bruto, sin adaptar, pero funciona correctamente.

$(window).on('blur',function(e) {    
	if($(this).data('mouseIn') != 'yes')return;
	$('iframe').filter(function(){
		return $(this).data('mouseIn') == 'yes';
	}).trigger('iframeclick');    
});
 
$(window).mouseenter(function(){
	$(this).data('mouseIn', 'yes');
}).mouseleave(function(){
	$(this).data('mouseIn', 'no');
});
 
$('iframe').mouseenter(function(){
	$(this).data('mouseIn', 'yes');
	$(window).data('mouseIn', 'yes');
}).mouseleave(function(){
	$(this).data('mouseIn', null);
});
 
$('iframe').on('iframeclick', function(){
	console.log('Click dentro del iframe');
	$('#result').text('Click dentro del iframe'); 
});
$(window).on('click', function(){
	console.log('Click dentro de la ventana');
	$('#result').text('Click dentro de la ventana'); 
}).blur(function(){
	console.log('window blur');
});
 
$('<input type="text" style="position:absolute;opacity:0;height:0px;width:0px;"/>').appendTo(document.body).blur(function(){
$(window).trigger('blur');
}).focus();

Si quieres ocultar el iframe una vez que se haya hecho click, puedes utilizar esta función.

$('iframe').on('iframeclick', function(){
            $(this).hide() // Or remove() 
            $('#result').text('Clicked dentro del iframe'); 
        });

Y listo, con esto puedes hacer tu propio “Click Fraud Monitor” XD.