Basierend auf der Antwort von Mohammed Radwan habe ich die folgende jQuery-Lösung gefunden. Grundsätzlich wird verfolgt, was iFrame-Leute schweben. Wenn dann das Fenster unscharf wird, bedeutet dies höchstwahrscheinlich, dass der Benutzer auf das Iframe-Banner geklickt hat.
Der Iframe sollte in ein Div mit einer ID eingefügt werden, um sicherzustellen, dass Sie wissen, auf welchen Iframe der Benutzer geklickt hat:
<div class='banner' bannerid='yyy'>
<iframe src='http://somedomain.com/whatever.html'></iframe>
<div>
so:
$(document).ready( function() {
var overiFrame = -1;
$('iframe').hover( function() {
overiFrame = $(this).closest('.banner').attr('bannerid');
}, function() {
overiFrame = -1
});
... dies hält overiFrame auf -1, wenn keine iFrames schweben, oder die 'Bannerid', die im Wrapping-Div gesetzt ist, wenn ein Iframe schwebt. Alles was Sie tun müssen, ist zu überprüfen, ob 'overiFrame' gesetzt ist, wenn das Fenster unscharf wird, wie folgt: ...
$(window).blur( function() {
if( overiFrame != -1 )
$.post('log.php', {id:overiFrame}); /* example, do your stats here */
});
});
Sehr elegante Lösung mit einem kleinen Nachteil: Wenn ein Benutzer beim Bewegen der Maus über einen iFrame ALT-F4 drückt, wird dies als Klick protokolliert. Dies geschah jedoch nur in FireFox, IE, Chrome und Safari haben es jedoch nicht registriert.
Nochmals vielen Dank Mohammed, sehr nützliche Lösung!