Basé sur Mohamed Radwan réponse, je suis venu avec la suite de jQuery solution. Essentiellement, ce qu'il fait est de garder une trace de ce iFrame gens sont en vol stationnaire. Ensuite, si la fenêtre de flou qui signifie très probablement que l'utilisateur a cliqué sur l'iframe bannière.
l'iframe doit être placé dans un div avec un id, assurez-vous de savoir qui iframe l'utilisateur a cliqué sur:
<div class='banner' bannerid='yyy'>
<iframe src='http://somedomain.com/whatever.html'></iframe>
<div>
donc:
$(document).ready( function() {
var overiFrame = -1;
$('iframe').hover( function() {
overiFrame = $(this).closest('.banner').attr('bannerid');
}, function() {
overiFrame = -1
});
...
cela permet de maintenir overiFrame à -1 quand pas les iFrames sont plané, ou de la "bannerid' dans l'emballage div lorsqu'une iframe est planait. Tout ce que vous avez à faire est de vérifier si "overiFrame' est activée lorsque la fenêtre de flou, comme ceci:
...
$(window).blur( function() {
if( overiFrame != -1 )
$.post('log.php', {id:overiFrame}); /* example, do your stats here */
});
});
Très élégant avec un mineur inconvénient: si un utilisateur appuie sur ALT-F4 lorsque le curseur de la souris au-dessus d'un iFrame dans le fichier journal comme un clic. Cela s'est produit seulement dans FireFox, cependant, IE, Chrome et Safari n'a pas l'enregistrer.
Merci encore Mohammed, très utile!